Git開發筆記——搭建Git簡易高效伺服器

mythkiven發表於2016-06-03

1. mysysgit+gitblit安裝流程

1.1資源 
需先下載好的資源(公司用的1.6,1.7+請自行匹配對應的mysysgit+gitblit): 
jdk1.6 
Git-1.8.4-preview20130916.exe 
gitblit-1.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.2Gitblit安裝

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,完成後如圖; 
這裡寫圖片描述

2.3建立使用者

導航條選擇”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;

3.本地操作

3.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建立一個高許可權的使用者作為倉庫的管理員; 
在本地資料夾中會出現clone下來的倉庫,如圖: 
這裡寫圖片描述 
這裡寫圖片描述 
cd 到repository目錄下,和.git平級,開始操作。其實是建立了一個和遠端倉庫對應的本地倉庫。為了操作方便,我們給遠端倉庫起一個別名,一般為”origin”, 
命令為:git remote add origin http://xx.xx.xx.xx:7070/git/repository-01.git 
不起也是可以,每次輸入完整的地址url; 
預設的也可以,預設為”origin”;

3.2本地操作

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 “註釋的內容”。 
一定要加上註釋的內容才能提交成功,它會顯示在每一次的操作中和日誌中; 
這裡寫圖片描述 
出現如箭頭所指的,說明暫存區的內容已經全部提交完成了。 
多個檔案、刪除操作等,可以用命令 git add –all 
用ULtraEdit/editPlus等編輯器編輯完的檔案的.bak檔案請及時刪除,不要提交; 
這裡寫圖片描述 
補充: 
1)撤銷修改–修改後,還沒有放到暫存區: 
在我未提交之前,我發現新增文件內容有誤,所以我得馬上恢復以前的版本,現在我可以有如下幾種方法可以做修改: 
第一:如果我知道要刪掉那些內容的話,直接手動更改去掉那些需要的檔案,然後add新增到暫存區,最後commit掉。 
第二:我可以按以前的方法直接恢復到上一個版本。使用 git reset –hard HEAD^。 
第三:git checkout –- 檔名 
2)撤銷修改—已經在暫存區了,又做了修改: 
git checkout –檔名 該命令會使檔案回到放入暫存區之後的狀態; 
這裡寫圖片描述 
d.提交完成即完成本地的倉庫的分支的工作,可以推送(push)到遠端的倉庫了。但是就如我們正常使用SVN一樣,我們的提交可能和其他人衝突,所以正確的操作規範是: 
1)先檢視遠端的倉庫的狀態;命令為:git remote show 遠端倉庫名 
這裡寫圖片描述 
可以檢視是否有人推送及更新情況; 
2)拉取遠端倉庫,命令:git pull 倉庫名 
如果是第一次推送,一定要pull; 
這裡寫圖片描述 
up-to-date表示本地現有內容和你上次提交的並無差異; 
此處有2種情況: 
1)本地的修改和遠端的修改不衝突; 
pull會自動合併(merge)遠端的修改和本地的修改,git status 也會顯示沒有修改; 
2)本地的修改和遠端的修改衝突(比如剛好在同一行或者同一塊); 
程式會自動合併(merge),刪除那一行原有的,修改為你修改的。所以要在web端做好比較再pull。 
3) 推送到遠端倉庫,命令:git push倉庫名 分支名 
如果是第一次推送,需要輸入git push -u倉庫名 分支名 
這裡寫圖片描述 
4)檢視 
命令檢視:git remote show 倉庫名; 
web檢視:http:// xxxx:7070(推薦web檢視,更詳細) 
這裡寫圖片描述
註釋1:路徑; 
註釋2:commit的註釋; 
註釋3:提交的檔案的內容; 
注:此處可以直接在頁面標題下下載”.ZIP”或者”.gz”包;

4.日常維護

推薦2個方案: 
方案1:集中式管理。 
設立1-2個管理員,組員僅view許可權。管理員負責伺服器倉庫的搭建和分支管理,其餘的組員提交給管理員稽核,再由管理員新增到master;一個文件夾建立一個倉庫,每個倉庫新增可以預覽的人員即可實現簡單但高效的許可權管理。 
此方案適合文件管理等,便於維護; 
方案2:分散式管理。 
設立1-2個管理員,組員有pull/push許可權。由管理員建立程式碼分支,並管理。由組員在pull/fork分支,並修改和提交到該分支,經管理員稽核同意後,管理員合併到主分支上。典型的分散式協作管理;每一步的操作都會在伺服器上有詳盡的記錄。

5. Git基本常用命令如下:

mkdir: XX (建立一個空目錄 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~ 回退到上一個版本 
(如果想回退到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 關聯一個遠端庫 
git push –u(第一次要用-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分支推送到遠端庫對應的遠端分支上

相關文章