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