Git是用於Linux內核開發的版本控制工具。與CVS、Subversion一類的集中式版本控制工具不一樣,它採用了分佈式版本庫的做法,不須要服務器端軟件,就能夠運做版本控制,使得源代碼的發佈和交流極其方便。Git的速度很快,這對於諸如Linux內核這樣的大項目來講天然很重要。git最爲出色的是它的合併追蹤(merge tracing)能力。html
構建Git倉庫的方式便可以在本地直接生成,也能夠本身搭建一個Git服務器,本文介紹在Linux服務器上如何構建一個Git代碼倉庫。Let's Start!vim
$ adduser git
複製代碼
opt
目錄下建立一個文件夾code
$ mkdir /opt/code
複製代碼
$ cd code
$ git init --bare test.git
複製代碼
$ cd test.git
複製代碼
進入hooks
中建立一個函數(當接收傳送時自動調用的鉤子),實現當代碼更新時服務端運行代碼同步更新(此步驟僅做自動化部署方案參考,實際運行環境應根據需求後使用)。bash
$ cd hooks
$ vim post-receive
複製代碼
內容爲重寫指定工做區文件,代碼以下服務器
#!/bin/bash
git --work-tree=/www/wwwroot/test checkout -f
複製代碼
實際狀況應將‘/www/wwwroot/test’替換爲目標項目位置,此目錄git用戶需有權限併發
chown -R git:root /www/wwwroot/test
複製代碼
最後給post-receive
文件執行權限分佈式
chmod +x post-receive
複製代碼
具體鉤子建立與否需根據項目具體實現作不一樣的調整,某些大廠的代碼管理是用專門的服務器進行管理,在網頁控制分支合併發佈,一鍵部署等,抽象出版本管理這層,以便代碼的發佈,不知道你們都是怎麼實現版本迭代,分支管理的呢?(若是仍是手動搬運代碼就能夠試着實現本身的自動化部署啦~)svn
git clone /opt/code/test.git
$ git clone git@IP:/opt/code/test.git
複製代碼
$ cd test
$ touch index.html
複製代碼
$ git add .
$ git commit -m 'create index.html'
$ git push
複製代碼
如發生錯誤,有的多是由於用戶權限的緣由,經過
chmod
命令配置權限給git用戶便可函數
現現在代碼管理已發展了諸多工具(如svn,cvs),代碼託管平臺(如Github,Gitlab)可供選擇,要說的話,代碼如同貨物,適合的版本管理如同高度自動化的船舶,僅需少數船員,便可駕駛着輪船穩健駛向新航線,提升效率,迎接新世紀。工具
\(•ㅂ•)/♥ 共勉~