Git的遠程倉庫和本地倉庫是相同,只不過遠程倉庫是7 * 24小時開機供大家交換修改。
下面我們在linux服務器搭建Git遠程倉庫,假設Linux的服務已經安裝Git.
一:新建一個空目錄,將目錄初始化爲一個空的git版本庫,版本庫和工作區都在這一目錄.
[root @ iZtdyc5z8stzccZ web]#sudo mkdir git_test
[root @ iZtdyc5z8stzccZ web]#cd git_test /
[root @ iZtdyc5z8stzccZ git_test] #sudo git init
在/web/git_test/.git中初始化空的的Git倉庫/
初始化版本庫後可以在目錄下看到.git的文件夾,這個文件夾用於跟蹤管理版本庫.此時我們已經完成了一個版本庫的創建.
二:將剛剛創建的版本庫導出爲一個裸倉庫.(即不包含工作區的版本庫)
git clone --bare git_test/ git_test.git
三:clone這個裸倉庫到本地.
git clone ssh://用戶名@服務器的IP:/web/git_test.git
四:我們在本地添加文件,提交到git版本庫,並push到git遠程倉庫.push成功後, 我們可以在遠程倉庫下使用git log查看到本次的推送信息,但是我們在工作目錄下不能查看到我們剛剛添加的文件.這對於想要實時查看的用戶來說是很不好的,所以我們需要在服務器版本庫中使用鉤子來將本地推送的修改實時推送到工作區域.
解決方法:
1.我們進入裸倉庫的hooks目錄.
2.新建post-receive文件.
3.在文件中添加shell腳本git --work-tree=/web/git_test checkout -f 保存並推出,其中/web/git_test 爲你要將遠程版本庫中的修改實時推送到的目錄.
4.我們修改改文件的用戶和用戶組都設置成git,同時設置post-receive文件的權限改成可執行權限.
sudo chown 用戶名:用戶名 post-receive
sudo chmod +x post-receive
5.我們本地再次修改文件並添加到版本庫,push到遠程倉庫,查看遠程倉庫的工作區,發現添加的文件出現在工作區中.
如果有錯誤請大家指出