[更新在底部]git pull --rebase失敗子模塊foreach,但成功在自己的目錄
這現在已經發生了兩次在過去十五分鐘。當我從父模塊發出以下命令時
git submodule foreach git pull --rebase
它打印有關更新某些子模塊的消息,並且'是最新的。關於其他一些,直到停在與以下之一:
Entering 'foo.bar'
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Stopping at 'foo.bar'; script returned non-zero status.
我不記得在foo.bar作出任何更改。事實上,在此之前,我已經發布了git submodule foreach git status
。所以我嘗試看看什麼是錯的,似乎有什麼不妥:
$ cd foo.bar/
14 07 17 12:38:03 [email protected] /c/git/mainbuild/foo.bar (staging)
$ git st
On branch staging
Your branch is up-to-date with 'origin/staging'.
nothing to commit, working directory clean
14 07 17 12:38:08 [email protected] /c/git/mainbuild/foo.bar (staging)
$ git pull --rebase
remote: Counting objects: 19, done
remote: Finding sources: 100% (10/10)
remote: Total 10 (delta 5), reused 9 (delta 5)
Unpacking objects: 100% (10/10), done.
From ssh://git.wdf.sap.corp:29418/smp/server/dist/com.sap.mobile.platform.server.foo.bar
214e0c9..266b279 master -> origin/master
Current branch staging is up to date.
那麼爲什麼它會失敗,子模塊的foreach?
UPDATE 看來git submodule
是不是在這裏指責。我試過
git submodule -q foreach 'echo "cd $name; pwd; git pull --rebase; cd .."' | bash
而且那也失敗了。然後我嘗試了一個新的cygwin bash
的原始命令,這個命令從windows命令提示符開始,並沒有執行我的~/.bash_profile
等。並且它成功了。所以還有其他的東西導致了這一點。