在带有子模块的git分支中工作并直接从该分支提交

时间:2016-09-03 05:10:35

标签: git git-submodules

我在我的分支机构工作,我需要一个外部子模块,所以从我的项目的根目录开始。

git submodule add https://github.com/blah/blah ./location/submodue
Cloning into ...
...
git commit -am "Added submodule"

这似乎有效,我能够继续在主分支上工作,在工作时我发现了子模块中的一个错误,所以我直接在其中进行了更改。

但是当我做git add .时没有找到任何更改,我找不到代码更改。没有什么可以提交,但是git报告了git +0 ~1 -0!,但是我无法添加/提交那一个更改。

所以我对'main'项目进行了更改,然后我撤消了更改,一切都很好了。

那么如何更改子模块并从使用该子模块的“main”分支提交这些更改

(如果您需要实际github项目的链接/路径,请告诉我。)

1 个答案:

答案 0 :(得分:1)

  

那么如何更改子模块并从使用该子模块的“main”分支提交这些更改

你需要:

  • 确保您的子模块已签出分支:默认情况下,子模块始终位于 detached HEAD mode 中,检出SHA1,而不是分支。

您可以使每个子模块都遵循分支 请参阅“How to make an existing submodule track a branch”。

cd /path/to/your/parent/repo/Foo
git config -f .gitmodules submodule.bar1.branch branch1
  • 在该分支中进行新的提交(修复),并推送到该子模块(或分支)的远程仓库
  • 返回父级仓库,添加,提交和推送以记录该子模块的新SHA1。 (即:gilinkspecial entry in the index