亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用git HOOK自動部署git命令執行不成功

使用git HOOK自動部署git命令執行不成功

Git
一只斗牛犬 2018-07-22 19:17:05
git@OSC上,使用PUSH鉤子,每次push就通過URL訪問項目下面的自動部署php文件<?header("Content-type: text/html; charset=utf-8");$js=json_decode($_REQUEST["hook"]);//json轉換if($js->password!="xxxxxx")die("ERROR!");//判斷密碼$fp=fopen("./log.txt",'a');$lastcommit=$js->push_data->commits[count($js->push_data->commits)-1];//獲取最后的commitif(strstr($lastcommit->message,"release"))//這里意為:如果最后的commit包含"release"則進行自動發布。{exec('cd /home/xxx/');//進入目錄exec("git pull origin master");//進行git拉取,前提是使用了sshfwrite($fp,"!!!".date('Y-m-d H:i:s')."\t".$lastcommit->message."\t".$lastcommit->author->name."\t"."Y"."\n");//進行記錄}else{fwrite($fp,date('Y-m-d H:i:s')."\t".$lastcommit->message."\t".$lastcommit->author->name."\t"."N"."\n");}每次push后,項目下面的log.text確實有記錄,但是代碼沒更新,還是得每次都手動git pull一下。這該如何是好???
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

有時候需要git stash一下才行。。。而且要保證你命令行在終端下執行時可以正常運行的

查看完整回答
反對 回復 2018-07-27
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

exec('cd /home/xxx/');//進入目錄
exec("git pull origin master");//進行git拉取,前提是使用了ssh

在一個exec連在一起寫吧,cd不會修改父進程所在目錄,另外最好把輸出重定向到文件方便排查。


查看完整回答
反對 回復 2018-07-27
  • 2 回答
  • 0 關注
  • 2189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號