折騰到凌晨五點,依然沒有實現 windows下 分支 push之后服務器自動部署
主要是因為GIT的helper的配置上的問題。最后果斷放棄了,最后祭出大招,用
WINDONS命令行自動循環。。60秒自動pull一次 實現的自動部署。。
不過在WINDONWS下實現有點麻煩,主要是因為credentials-manager的原因,WINDOWS下才有這個鬼玩意兒。
使用PHP 執行 exec("git pull")
的時候 會發現進程中多了一個credentials-manager的進程,這個時候PHP的頁面是卡死狀態,其實這個時候是GIT讓credentials-manager交出登陸到遠程倉庫的賬號密碼
不過我本地試了很多次,依然是卡死狀態。也無法設定他的賬號和密碼。。
雖然最終放棄了這個辦法,但還是把我的理解做個紀念,方便以后大家解決這個問題
首先這個問題是因為git helper 引起的
那么git helper到底是什么鬼
簡單講 就是當我們執行push pull 的時候 git會要求我們輸入賬號密碼
密碼賬號都正確后 ,git helper 會記錄下來,下次再push pull的時候 git 會調出helper里面存儲的賬號和密碼
但!git helper 是可以第三方實現的。。在windows下git 默認的helper是credentials-manager,這東西是微軟實現的
其實你可以改成credentials-store..
但一直沒改成功。。也沒法刪除credentials-manager 所以這就鬼扯了,php一旦執行exec("git pull") credentials-manager 就是不交出賬號和密碼,一直卡死。。
最后放出 我用的批處理
以下代碼 保存為cmd文件 放在項目的根目錄,運行即可。每分鍾執行一次git pull
@echo off :s choice /t 60 /d y /n git pull goto s
各種大兄弟一臉蒙蔽。。
https://segmentfault.com/a/1190000009232433
https://www.cnblogs.com/volnet/p/git-credentials.html
http://www.cnblogs.com/ballwql/p/3462104.html
關於指定GIT 使用helper
https://blog.csdn.net/u012163684/article/details/52433645
關於GIT的設定這里有介紹
https://git-scm.com/docs/git-credential-store