我有以下設置,我正在處理子項目submodule
的項目project
。無論何時我將更改推送到github,它都會向服務器上的update.php發送一個post請求。git submodule在網絡服務器上自動提交併提交
這個php文件執行一個git命令。沒有子模塊,我可以做一個git pull,一切都很好,但是對於子模塊來說,它要困難得多。
我現在有這個,但它沒有做我想要的。我應該拉回購和更新並拉動每個子模塊的最新版本。
<?php echo `git submodule foreach 'git checkout master; git pull;
git submodule update --init --recursive; git commit -m "updating"' && git pull &&
git submodule foreach 'git add -A .'
&& git commit -m "updating to latest version including submodules" 2>&1s`;
編輯// 好,我知道有一半的方式完成。
<?php echo `git submodule foreach 'git checkout master; git pull;
git submodule update --init --recursive; git commit -am "updating"; echo "updated"' &&
git pull && git commit -am "updating to latest version including submodules" &&
echo 'updated'`;
echo會阻止腳本因返回非零而停止。當我使用php update.php
從控制檯運行它時,它可以100%正常工作。
當github初始化文件,或者我從瀏覽器運行它仍然不起作用。
任何想法?
它是什麼呢? 您是否嘗試過切換'git pull'和第一個'git submodule foreach ...'? 第二個'git submodule foreach ...'沒有'git commit'。 – Michael
我試了一下,既然它工作正常,從控制檯運行它應該實際上不是在腳本中的問題吧?它可能與權限有關嗎?如果是這樣,我該如何解決? –
你說「沒有子模塊(...)一切正常」,所以我猜Web服務器具有所需的權限。運行時間的腳本怎麼樣?它停在哪裏? – Michael