在带有子模块的 git 分支中工作并直接从该分支提交
Working in a git branch with submodules and commiting directly from that branch
我在我的分支机构工作,我需要一个外部子模块,所以我从项目的根开始。
git submodule add https://github.com/blah/blah ./location/submodue
Cloning into ...
...
git commit -am "Added submodule"
这似乎奏效了,我能够在主分支上继续工作,在工作时我发现子模块中有一个错误,所以我直接在其中进行了更改。
但是当我做了一个git add .
no changes were found时,我所做的代码更改没有找到。没有什么可提交的,但 git 确实报告了 git +0 ~1 -0!
,但我无法 add/commit 那个更改。
所以我对 'main' 项目进行了更改,然后我拉取了更改,一切都恢复正常了。
那么我如何更改子模块并从使用该子模块的 'main' 分支提交这些更改
(如果您想要 links/paths 到实际的 git 中心项目,请告诉我)。
So how can I make changes to the submodule and commit those changes from the 'main' branch that uses that submodule
您需要:
- 确保你的子模块已经签出分支:默认情况下,子模块总是在 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。 (即:gilink, a special entry in the index)
我在我的分支机构工作,我需要一个外部子模块,所以我从项目的根开始。
git submodule add https://github.com/blah/blah ./location/submodue
Cloning into ...
...
git commit -am "Added submodule"
这似乎奏效了,我能够在主分支上继续工作,在工作时我发现子模块中有一个错误,所以我直接在其中进行了更改。
但是当我做了一个git add .
no changes were found时,我所做的代码更改没有找到。没有什么可提交的,但 git 确实报告了 git +0 ~1 -0!
,但我无法 add/commit 那个更改。
所以我对 'main' 项目进行了更改,然后我拉取了更改,一切都恢复正常了。
那么我如何更改子模块并从使用该子模块的 'main' 分支提交这些更改
(如果您想要 links/paths 到实际的 git 中心项目,请告诉我)。
So how can I make changes to the submodule and commit those changes from the 'main' branch that uses that submodule
您需要:
- 确保你的子模块已经签出分支:默认情况下,子模块总是在 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。 (即:gilink, a special entry in the index)