我使用的是
主项目有一个名为 "release" 的分支,每次发布新版本时我都会在这里推送更新。
该项目还有一个子模块,正在并行开发中,所以我预计会有许多提交。
主项目的 Master 分支和子模块的 Master 分支几乎是并行的。 Master Commit 1 => Master Commit 2 => Master Commit 3 => Master Commit 4
Submodule Commit 1 => Submodule Commit 2 => Submodule Commit 3 => Submodule Commit 4 在这种情况下,Master Commit 4 与 Submodule Commit 4 是对齐的。
问题出现在某人试图太晚获取发布分支时。
如果我在 Master Commit 1 推送了 release 分支,并且当我们处于 Master Commit 4 时某人拉取了发布分支,那么就会有不对齐的情况(因为发布与 Master Commit 1 相关,而现在我们在Submodule Commit 4)。
我想到的解决方案是以某种方式强制将Submodule Commit 1 放到 release 分支上,但我还不知道如何实现。
我知道一个很好的解决方案就是像这里所讲的那样在子模块中添加分支或标签。
但是我对子模块库没有权限,所以很难为我设置分支或标签。
有没有什么方法可以强制在我的发布分支上使用特定的子模块提交,而不仅仅是子模块分支/标签?
git version 2.8.0.windows.1
版本。主项目有一个名为 "release" 的分支,每次发布新版本时我都会在这里推送更新。
该项目还有一个子模块,正在并行开发中,所以我预计会有许多提交。
主项目的 Master 分支和子模块的 Master 分支几乎是并行的。 Master Commit 1 => Master Commit 2 => Master Commit 3 => Master Commit 4
Submodule Commit 1 => Submodule Commit 2 => Submodule Commit 3 => Submodule Commit 4 在这种情况下,Master Commit 4 与 Submodule Commit 4 是对齐的。
问题出现在某人试图太晚获取发布分支时。
如果我在 Master Commit 1 推送了 release 分支,并且当我们处于 Master Commit 4 时某人拉取了发布分支,那么就会有不对齐的情况(因为发布与 Master Commit 1 相关,而现在我们在Submodule Commit 4)。
我想到的解决方案是以某种方式强制将Submodule Commit 1 放到 release 分支上,但我还不知道如何实现。
我知道一个很好的解决方案就是像这里所讲的那样在子模块中添加分支或标签。
但是我对子模块库没有权限,所以很难为我设置分支或标签。
有没有什么方法可以强制在我的发布分支上使用特定的子模块提交,而不仅仅是子模块分支/标签?
git checkout release
git pull origin release
,但它没有将子模块恢复到发布版本(我仍然有主分支的子模块)。我也尝试了git submodule sync
,但没有成功。 - Jack Marianigit pull --recurse-submodules
或git submodule update
。 - phd