環境: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中看到該文件。
---------------------
原文:https://blog.csdn.net/zhiyual/article/details/79825376