背景
工程中要實現(xiàn)一個需求,客戶端git push后代碼能夠直接部署到服務器的目錄中。
實現(xiàn)方式
可以利用git的hooks中的post-receive來實現(xiàn)代碼提交后動作,post-receive中配置如下:
#!/bin/sh
cd /www/myproject #切換到服務器工程目錄
git pull #拉取代碼
但是上面代碼git pull并沒有生效,網上找了下原因,后面發(fā)現(xiàn) git 的鉤子在運行的時候會調用 GIT_DIR 這個環(huán)境變量,而不是PWD 這個。所以在 git pull 的時候提示 Not a git repository: ‘.’ ,其中 “.” 正是 GIT_DIR 這個環(huán)境變量的值。針對這個問題修復了下腳本代碼:
#!/bin/sh
cd /www/myproject/
unset GIT_DIR #重要的是這里
git pull
然后就生效了。。。。