1. 程式人生 > >使用git hooks實現程式碼自動部署更新

使用git hooks實現程式碼自動部署更新

環境:CentOS 7

先說下整體思路:在伺服器中建立遠端倉庫A(裸倉庫)和本地倉庫B(一般倉庫)。然後在倉庫A中建立使B git pull A的指令碼,並每當有使用者 git push A的時候就觸發該指令碼。

1. 初始化兩個倉庫

兩個倉庫的目錄分別是 A:/home/mycode/test.git 和 B:/home/www/test.git

建立倉庫A可以參考點選開啟連結

建立倉庫B則如同在本地建立倉庫一樣

cd /home
mkdir www
chown git www/
cd www
#注意,這裡要初始化為一般倉庫而非裸倉庫
git init test.git
chown -R git test.git

2. 在倉庫A中配置hooks

cd /home/mycode/test.git/hooks
vi post-receive

然後輸入如下內容並儲存

unset GIT_DIR

#進入倉庫B目錄
cd /home/www/test.git
#執行git pull命令
git pull /home/mycode/test.git master
#返回倉庫A並退出
cd /home/mycode/test.git
exit 0

賦予其許可權

chmod +x /home/mycode/test.git/hooks/post-receive

然後我們在本地向倉庫A中 push 檔案後就可以在倉庫B中看到該檔案。