使用git hooks實現程式碼自動部署更新
阿新 • • 發佈:2019-02-18
環境: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中看到該檔案。