簡體   English   中英

如何更改git子模塊跟蹤遠程分支?

[英]How to change git submodule tracking remote branch?

我使用以下命令添加子模塊

git submodule add -b br1 [repo]

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

我怎么能做到這一點?

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

相反,當您更改子模塊時,git 會更新您的子模塊版本的提交號。 如果你看看你的上層模塊

git diff

你會看到類似的東西

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

如果您希望每個人都使用新的子模塊分支,則必須提交並將該更改(新的子模塊提交編號)推送到您的上層模塊存儲庫中。

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

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

我遇到了同樣的問題。 我就是這樣解決的。

因為主 repo 跟蹤的是一個分支,而不是一個特定的提交,所以在子模塊或切換分支中拉取更改不會在主 repo 中進行修改。

相反,編輯.gitmodules文件。 有一條線

branch = br1

用新分支替換它(至少在子模塊中獲取一次之后)

branch = br2

然后在新的提交中,您可以描述從現在開始跟蹤的 br2。

然后任何其他開發人員都可以使用git submodule update --remote更新他們的克隆來拉你更改,並跟蹤br2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM