2015-09-07 128 views
4

我使用下面的命令如何更改git子模塊跟蹤遠程分支?

git的子模塊添加-b BR1 [回購]

的.gitmodules文件條目分支= BR1添加的子模塊。現在我想將分支切換到br2。我可以進入子模塊文件夾並切換分支,但不會更新.gitmodules文件。

我該怎麼做?

+0

爲什麼要這樣做?如果你仔細想想,如果你改變子模塊正在跟蹤的分支,那麼是否可能拋棄其他人的代碼呢?子模塊是一個非常棘手的Git區域。您的問題可能有解決方法。 –

+1

我正在一個穩定的分支br1上工作,並且想要在實驗br2上進行測試。如果我不更新.gitmodules文件,其他用戶將無法看到它。 – Rohit

回答

1

Git使用.gitmodules存儲指向子模塊項目的鏈接,但不是它的特定版本。所以當你切換子模塊的分支時,git .gitmodules文件不會改變。

改爲子模塊時,git updates會提交子模塊版本號。如果你看看你的上部模塊

git diff 

,你會看到類似

-Subproject commit 829b869657418fdac7964c3671ed9a378f09c032 
+Subproject commit 829b869657418fdac7964c3671ed9a378f09c032-dirty 

如果你希望每個人都使用新的子模塊的分支,你必須承諾&推動這種變化(新的子模塊提交數)進入你的上層模塊回購。

基本上它就像一個鏈接到特定的子模塊版本。

查看詳情:https://git-scm.com/book/en/v2/Git-Tools-Submodules#Starting-with-Submodules

+0

我沒有看到差異,因爲我創建了一個分支,並且除了指針之外什麼都沒有做! – Rohit

+0

但是,這仍然是關於提交。 如果要更新提交*和*更改分支,是否直接編輯.gitmodules文件的正確工作流? – Pxtl

相關問題