2011-07-25 109 views
2

我試圖使用git submodules與像拓撲:在Git中,我該如何從存儲庫中獲取並獲取在該存儲庫的子模塊子repo中提交的所有子模塊更改集?

parent_repo 
`-- child_repo 

我們維持主幹副本,我們都推和拉離。 (我知道一個星型拓撲結構是沒有必要的。我知道你可以從對方拉,而無需通過一箇中央資料庫反映。)

trunk_child_repo <--+ 
        | 
trunk_parent_repo | 
`-- child_repo -----+ # child_repo will pull from trunk_child_repo by default 

現在我們有充分填充子模塊的trunk_parent_repo多個副本。

trunk_parent_repo 
`-- child_repo 

ross_parent_repo 
`-- child_repo 

bob_parent_repo 
`-- child_repo 

joe_parent_repo 
`-- child_repo 

我在ross_parent_repo,我想從bob_parent_repo拉並得到所有鮑勃所做的文件bob_parent_repo以及他致力於他的子模塊bob_parent_repo/child_repo的編輯的編輯。

不幸的是,當我做了git pull --recurse-submodules bob_parent_repo,就會從bob_parent_repoross_parent_repotrunk_child_repoross_parent_repo/child_repo

是否有可能有一個很好的,簡單的命令來提取Bob在bob_parent_repo中所做的所有變更集以及他在所有子模塊中所做的所有變更集?我是否必須編寫腳本並遍歷.gitmodules文件中的子模塊?

回答

2

無需打開.gitmodules;你可以使用git submodule foreach

git pull $BOBS_PARENT_REPO 
git submodule foreach 'git pull $BOBS_PARENT_REPO/$path/.git' 

(這不會對任何子模塊-的,子模塊的工作,雖然)。

+0

完美。謝謝。 –

+0

我認爲在1.7.5中你可以用遞歸foreach來實現--recursive –

相關問題