Git 子模块 - 更改分支
Git submdule - Change Banch
我对 git 中的子模块有疑问:
我有一个包含子模块 "A" 的存储库 "SuperRepo"。子模块 "A" 指向 .git 模块中的分支 "develop"。
如果我在 "SuperRepo" 中创建一个新分支,让我们假设 "fancyFeature",我有时会将子模块 "A" 的分支更改为具有相同名称的新分支。并非总是如此,但有时会如此。
我可以提交此更改,子模块指向分支 "fancyFeature" 上的提交。但是由于 .gitmodules 仍然指向开发,我总是有独立的头脑(至少这是我的解释)。有没有办法在没有分离头的情况下更改子仓库的分支?
感谢您的帮助!
P.S.:如果我将 .git 模块更改为 "fancyFeature",我不会分离头。这就是我得出结论的地方......
git 子模块默认使用分离的 HEAD,没有直接支持来改变它。
但是你可以:
将submodule.XXX.branch
(在`.git模块中)设置到分支
使用
转到该分支的 HEAD
git submodule update
此命令默认为--checkout
。
手动创建分支并使用
git submodule update --rebase
git submodule update --merge
这将保留您的分支。
您可以通过将 submodule.XXX.update
设置为 rebase
、merge
或 checkout
.
来覆盖默认更新方法
您可以添加 --remote
以获取子模块分支和 merge/rebase/checkout 此提交。
要创建分支,您可以遍历子模块,例如
git submodule foreach 'git -B feature-branch || :`
我对 git 中的子模块有疑问:
我有一个包含子模块 "A" 的存储库 "SuperRepo"。子模块 "A" 指向 .git 模块中的分支 "develop"。 如果我在 "SuperRepo" 中创建一个新分支,让我们假设 "fancyFeature",我有时会将子模块 "A" 的分支更改为具有相同名称的新分支。并非总是如此,但有时会如此。
我可以提交此更改,子模块指向分支 "fancyFeature" 上的提交。但是由于 .gitmodules 仍然指向开发,我总是有独立的头脑(至少这是我的解释)。有没有办法在没有分离头的情况下更改子仓库的分支?
感谢您的帮助!
P.S.:如果我将 .git 模块更改为 "fancyFeature",我不会分离头。这就是我得出结论的地方......
git 子模块默认使用分离的 HEAD,没有直接支持来改变它。
但是你可以:
将
submodule.XXX.branch
(在`.git模块中)设置到分支使用
转到该分支的 HEADgit submodule update
此命令默认为
--checkout
。手动创建分支并使用
git submodule update --rebase git submodule update --merge
这将保留您的分支。
您可以通过将 submodule.XXX.update
设置为 rebase
、merge
或 checkout
.
您可以添加 --remote
以获取子模块分支和 merge/rebase/checkout 此提交。
要创建分支,您可以遍历子模块,例如
git submodule foreach 'git -B feature-branch || :`