Git開發筆記——搭建Git簡易高效伺服器
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分支推送到遠端庫對應的遠端分支上
相關文章
- Git常用簡約筆記Git筆記
- Linux 學習筆記(二):搭建個人Git伺服器Linux筆記Git伺服器
- Git極簡學習筆記Git筆記
- 廖雪峰Git學習筆記1-Git簡介Git筆記
- GIT筆記Git筆記
- Git 伺服器搭建Git伺服器
- Git工具極簡筆記(完結)Git筆記
- Git 簡單使用學習筆記Git筆記
- Centos搭建git伺服器CentOSGit伺服器
- Git使用筆記Git筆記
- 技能篇:git的簡易教程Git
- Git手把手簡易教程Git
- 【Java學習筆記(五十三)】之Git簡介,Git常用命令Java筆記Git
- 搭建自己的 Git 伺服器Git伺服器
- Git教程筆記 4.21Git筆記
- git學習筆記Git筆記
- Git筆記-部分命令Git筆記
- 一點git筆記Git筆記
- git的使用筆記Git筆記
- CAS學習筆記一:CAS 授權伺服器簡易搭建筆記伺服器
- Git 的特點—— Git 學習筆記 02Git筆記
- 取得 Git 倉庫 —— Git 學習筆記 04Git筆記
- git rebase(變基)—— Git 學習筆記 19Git筆記
- git checkout 和 git reset 的區別 —— Git 學習筆記 09Git筆記
- Git簡易的命令列入門教程:Git命令列
- 在CentOS上搭建git伺服器CentOSGit伺服器
- Windows下的git伺服器搭建WindowsGit伺服器
- git status 命令總結 —— Git 學習筆記 06Git筆記
- Git 筆記 - 程式設計師都要掌握的 GitGit筆記程式設計師
- git checkout 命令詳解—— Git 學習筆記 16Git筆記
- git學習筆記 1Git筆記
- git學習筆記1Git筆記
- Pro Git 學習筆記Git筆記
- git cherry-pick 詳解 —— Git 學習筆記 18Git筆記
- git reset 命令詳解(一)—— Git 學習筆記 07Git筆記
- git reset 命令詳解(二)—— Git 學習筆記 08Git筆記
- 最簡單的 Git 伺服器Git伺服器
- 教你搭建你自己的Git伺服器Git伺服器
- 【第十二篇】- Git 伺服器搭建Git伺服器