簡體   English   中英

php exec() - git push origin master無法正常工作,但其他git命令正在運行

[英]php exec() - git push origin master not working, but other git commands are working

我使用下面的代碼:

    echo exec("git add . ");  //this is working  
echo exec("git commit -am 'first commit' "); //also working  
echo exec("git push origin master");  //NOT WORKING, also not showing any error . 

我將用戶的文件夾權限限制為www-data。 所以,一些git命令正在運行但是

GIT PUSH ORIGIN MASTER

是不是從php exec工作。 解決辦法是什么 ? 另外,請告訴我為什么在exec中PUSH沒有顯示任何錯誤或消息,我怎么能看到這些消息。 另外,如果可能的話,請給我任何好的鏈接,以便更高級地使用php exec中的git命令。

更新:我也試過這個:我通過創建文件.git / hooks / post-commit添加了post-commit鈎子

我將此代碼添加到其中:

git push origin master

但我提交后沒有得到任何消息或錯誤,它只是提交但沒有做任何推動。

謝謝 !

我假設push命令將嘗試推送到遠程存儲庫(即系統上的另一個文件夾,而不是SSH / HTTPS后面的遠程服務器)。

在這種情況下,您很可能缺少HTTPS客戶端證書HTTPS或SSH密鑰。 您的Web服務器(以及PHP)最有可能以不同的用戶身份運行,並且無法訪問私鑰。 如果私鑰需要密碼,那么它將無法工作,因為exec命令不是交互式會話。

無論如何,我強烈建議你使用某種綁定而不是調用二進制文件。 任何直接調用都將啟動一個新進程,這對於調用庫來說效率更低。

你檢查過你所在的分店嗎? 'git status'會告訴你。

我還建議在分支機構工作,而不是直接在主機上工作。

git branch dev_test

git checkout dev_test

git add。

git commit -a -m“第一條評論”

git push origin dev_test

git checkout master

git merge dev_test

git push origin master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM