1.1資源
需先下載好的資源(公司用的1.6,1.7+請(qǐng)自行匹配對(duì)應(yīng)的mysysgit+gitblit):
jdk1.6
Git⑴.8.4-preview20130916.exe
gitblit⑴.2.1.rar
1.2安裝
1.2.1 Git Bash安裝
1)雙擊彈出安裝頁(yè)面
2)點(diǎn)擊2次next,進(jìn)入路徑選擇,添加自定義的路徑便可;
3)點(diǎn)擊next,進(jìn)入 選擇組件,
4)點(diǎn)擊2次next 進(jìn),選擇運(yùn)行環(huán)境,選擇 “run Git from the Windows Command Prompt”;
5)點(diǎn)擊next,選擇”Checkout as-is,commit Unix-style line endings”;
6)點(diǎn)擊next,進(jìn)入安裝進(jìn)度頁(yè)面,等待安裝完成;
7)點(diǎn)擊”Finish”,安裝完成,桌面、開(kāi)始菜單、和右鍵菜單都出現(xiàn)程序,很方便。
補(bǔ)充:
1.啟動(dòng)便可使用,不需要配置環(huán)境變量;
2.在要使用的文件夾內(nèi)右鍵選擇 Git Bash Here,可以直接進(jìn)入該目錄下的命令行,不用自己在命令行下面切換路徑,是否是很方便呢。例如:D:\hjj-repo下右鍵
10)測(cè)試
在彈出的命令行內(nèi)輸入”git version”,出現(xiàn)以下內(nèi)容即為安裝成功;
1)直接解壓,目錄自選;
2)配置gitblit.properties;
a. 路徑:gitblit目錄/data/gitblit.properties,“記事本”打開(kāi);
b. 找到server.httpPort,設(shè)定http協(xié)議的端口號(hào)(如:7070)
server.httpsPort,設(shè)定https協(xié)議的端口號(hào)(如:7071)
c. 找到server.httpBindInterface和server.httpsBindInterface,設(shè)定服務(wù)器的IP地址為空,方便其他人訪問(wèn);
d.保存,并退出。
3)測(cè)試
運(yùn)行g(shù)itblit目錄下的gitblit.cmd 批處理文件;
運(yùn)行結(jié)果以下,運(yùn)行成功。
2. Gitblit 的web操作
2.1管理員服務(wù)器首次登陸
在閱讀器中打開(kāi)url:http://127.0.0.1:7070(端口是自己配置的端口),在右上角輸入admin/admin登陸;–請(qǐng)記得修改密碼(admin)的
2.2創(chuàng)建倉(cāng)庫(kù)
1)選擇new repository,進(jìn)入新建倉(cāng)庫(kù),”general”選項(xiàng)卡以下:
“access permissions”選項(xiàng)卡以下:
2)”save”保存;
3)同上,創(chuàng)建repository-02,完成后如圖;
導(dǎo)航條選擇”users”–選擇”new user”,進(jìn)入創(chuàng)建用戶界面;
1)創(chuàng)建用戶A,”general”選項(xiàng)卡如圖:
”access permissions”選項(xiàng)卡如圖:1表示賦予的倉(cāng)庫(kù),2表示在該倉(cāng)庫(kù)能夠進(jìn)行的操作;
2)點(diǎn)擊”save”保存并退出;
3)同理創(chuàng)建用戶 user-B,賦予權(quán)限clone/push 倉(cāng)庫(kù)2;
4)同理創(chuàng)建用戶 user-C賦予權(quán)限clone/push 倉(cāng)庫(kù)1和2;
1)首先新建1個(gè)操作的文件夾,如:”hjj-repo”;
2) 菜單選擇”Git Bash Here”,在彈出的命令行窗口,輸入:
創(chuàng)建全局的用戶名:
git config – -global user.name “name”;
git clone http://服務(wù)主機(jī)IP:端口/git/倉(cāng)庫(kù)名.git,例如:
git clone http://10.10.10.10:7070/git/repository-01.git
會(huì)提示輸入用戶名和密碼,輸入便可;
如圖;
建議不要用admin,用admin創(chuàng)建1個(gè)高權(quán)限的用戶作為倉(cāng)庫(kù)的管理員;
在本地文件夾中會(huì)出現(xiàn)clone下來(lái)的倉(cāng)庫(kù),如圖:
cd 到repository目錄下,和.git平級(jí),開(kāi)始操作。實(shí)際上是創(chuàng)建了1個(gè)和遠(yuǎn)程倉(cāng)庫(kù)對(duì)應(yīng)的本地倉(cāng)庫(kù)。為了操作方便,我們給遠(yuǎn)程倉(cāng)庫(kù)起1個(gè)別名,1般為”origin”,
命令為:git remote add origin http://xx.xx.xx.xx:7070/git/repository-01.git
不起也是可以,每次輸入完全的地址url;
默許的也能夠,默許為”origin”;
1)本地的基本操作:
a.增加文件
例如,我增加兩個(gè)文件 “tables.txt”和”中文-表格.txt”
查看我的本地倉(cāng)庫(kù)狀態(tài),入命令:git status
提示倉(cāng)庫(kù)內(nèi)多出了2個(gè)文件,可以用”add”來(lái)跟蹤;
b.add把文件納入跟蹤
輸入命令:git add tables.txt 和 git add中文-表格.txt
并且查看狀態(tài)為:
顯示為有2個(gè)文件納入了暫存區(qū),需要commit到我們的分支上;
c.commit提交到分支上,輸入命令:git commit –m “注釋的內(nèi)容”。
1定要加上注釋的內(nèi)容才能提交成功,它會(huì)顯示在每次的操作中和日志中;
出現(xiàn)如箭頭所指的,說(shuō)明暫存區(qū)的內(nèi)容已全部提交完成了。
多個(gè)文件、刪除操作等,可以用命令 git add –all
用ULtraEdit/editPlus等編輯器編輯完的文件的.bak文件請(qǐng)及時(shí)刪除,不要提交;
補(bǔ)充:
1)撤消修改–修改后,還沒(méi)有放到暫存區(qū):
在我未提交之前,我發(fā)現(xiàn)添加文檔內(nèi)容有誤,所以我得馬上恢復(fù)之前的版本,現(xiàn)在我可以有以下幾種方法可以做修改:
第1:如果我知道要?jiǎng)h掉那些內(nèi)容的話,直接手動(dòng)更改去掉那些需要的文件,然后add添加到暫存區(qū),最后commit掉。
第2:我可以按之前的方法直接恢復(fù)到上1個(gè)版本。使用 git reset –hard HEAD^。
第3:git checkout –- 文件名
2)撤消修改—已在暫存區(qū)了,又做了修改:
git checkout –文件名 該命令會(huì)使文件回到放入暫存區(qū)以后的狀態(tài);
d.提交完成即完本錢地的倉(cāng)庫(kù)的分支的工作,可以推送(push)到遠(yuǎn)程的倉(cāng)庫(kù)了。但是就如我們正常使用SVN1樣,我們的提交可能和其他人沖突,所以正確的操作規(guī)范是:
1)先查看遠(yuǎn)程的倉(cāng)庫(kù)的狀態(tài);命令為:git remote show 遠(yuǎn)程倉(cāng)庫(kù)名
可以查看是不是有人推送及更新情況;
2)拉取遠(yuǎn)程倉(cāng)庫(kù),命令:git pull 倉(cāng)庫(kù)名
如果是第1次推送,1定要pull;
up-to-date表示本地現(xiàn)有內(nèi)容和你上次提交的并沒(méi)有差異;
此處有2種情況:
1)本地的修改和遠(yuǎn)程的修改不沖突;
pull會(huì)自動(dòng)合并(merge)遠(yuǎn)程的修改和本地的修改,git status 也會(huì)顯示沒(méi)有修改;
2)本地的修改和遠(yuǎn)程的修改沖突(比如恰好在同1行或同1塊);
程序會(huì)自動(dòng)合并(merge),刪除那1行原本的,修改成你修改的。所以要在web端做好比較再pull。
3) 推送到遠(yuǎn)程倉(cāng)庫(kù),命令:git push倉(cāng)庫(kù)名 分支名
如果是第1次推送,需要輸入git push -u倉(cāng)庫(kù)名 分支名
4)查看
命令查看:git remote show 倉(cāng)庫(kù)名;
web查看:http:// xxxx:7070(推薦web查看,更詳細(xì))
注釋1:路徑;
注釋2:commit的注釋;
注釋3:提交的文件的內(nèi)容;
注:此處可以直接在頁(yè)面標(biāo)題下下載”.ZIP”或”.gz”包;
推薦2個(gè)方案:
方案1:集中式管理。
設(shè)立1⑵個(gè)管理員,組員僅view權(quán)限。管理員負(fù)責(zé)服務(wù)器倉(cāng)庫(kù)的搭建和分支管理,其余的組員提交給管理員審核,再由管理員添加到master;1個(gè)文檔夾建立1個(gè)倉(cāng)庫(kù),每一個(gè)倉(cāng)庫(kù)添加可以預(yù)覽的人員便可實(shí)現(xiàn)簡(jiǎn)單但高效的權(quán)限管理。
此方案合適文檔管理等,便于保護(hù);
方案2:散布式管理。
設(shè)立1⑵個(gè)管理員,組員有pull/push權(quán)限。由管理員創(chuàng)建代碼分支,并管理。由組員在pull/fork分支,并修改和提交到該分支,經(jīng)管理員審核同意后,管理員合并到主分支上。典型的散布式協(xié)作管理;每步的操作都會(huì)在服務(wù)器上有詳實(shí)的記錄。
mkdir: XX (創(chuàng)建1個(gè)空目錄 XX指目錄名)
pwd: 顯示當(dāng)前目錄的路徑。
git init 把當(dāng)前的目錄變成可以管理的git倉(cāng)庫(kù),生成隱藏.git文件。
git add XX 把xx文件添加到暫存區(qū)去。
git commit –m “XX” 提交文件 –m 后面的是注釋。
git status 查看倉(cāng)庫(kù)狀態(tài)
git diff XX 查看XX文件修改了那些內(nèi)容
git log 查看歷史記錄
git reset –hard HEAD^ 或 git reset –hard HEAD~ 回退到上1個(gè)版本
(如果想回退到100個(gè)版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件內(nèi)容
git reflog 查看歷史記錄的版本號(hào)id
git checkout — XX 把XX文件在工作區(qū)的修改全部撤消。
git rm XX 刪除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 關(guān)聯(lián)1個(gè)遠(yuǎn)程庫(kù)
git push –u(第1次要用-u 以后不需要) origin master 把當(dāng)前master分支推送到遠(yuǎn)程庫(kù)
git clone https://github.com/tugenhua0707/testgit 從遠(yuǎn)程庫(kù)中克隆
git checkout –b dev 創(chuàng)建dev分支 并切換到dev分支上
git branch 查看當(dāng)前所有的分支
git checkout master 切換回master分支
git merge dev 在當(dāng)前的分支上合并dev分支
git branch –d dev 刪除dev分支
git branch name 創(chuàng)建分支
git stash 把當(dāng)前的工作隱藏起來(lái) 等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
git stash list 查看所有被隱藏的文件列表
git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除
git stash drop 刪除文件
git stash pop 恢復(fù)文件的同時(shí) 也刪除文件
git remote 查看遠(yuǎn)程庫(kù)的信息
git remote –v 查看遠(yuǎn)程庫(kù)的詳細(xì)信息
git push origin master Git會(huì)把master分支推送到遠(yuǎn)程庫(kù)對(duì)應(yīng)的遠(yuǎn)程分支上