gpt4 book ai didi

git - 是否可以将 git 子模块连接到主项目分支上的特定提交?

转载 作者:行者123 更新时间:2023-12-03 22:07:43 24 4
gpt4 key购买 nike

我有这种情况 git version 2.8.0.windows.1 .

我有一个主项目的“ 发布 ”分支,每次发布新版本时我都会推送到那里。

这个项目有一个并行开发的子模块,所以我希望那里有很多提交。

项目负责人分公司和 子模块 Master 分支(几乎)并行进行。

主提交 1 => 主提交 2 => 主提交 3 => 主提交 4
子模块提交 1 => 子模块提交 2 => 子模块提交 3 => 子模块提交 4

在这种情况下,主提交 4 与子模块提交 4 对齐。

当有人试图获取 时,就会出现问题。发布分行太晚了。
所以如果我推 发布在 Master Commit 1 的分支和当我们在 Master Commit 4 时有人 pull 发布分支时,我们有一个错位(因为 发布 与 Master Commit 1 相关,而现在我们在 Submodule Commit 4 上)。

我看到的解决方案是以某种方式强制 Submodule Commit 1 到 发布分支,但我还不知道如何。

我知道一个很好的解决方案就是在子模块上添加一个分支或标签,如 here 所述。 .

但是我对子模块存储库没有权限,所以我在那里设置分支或标签并不容易。

是否有任何变通方法来强制 特定子模块提交 在我的发布分支和 不仅仅是一个子模块分支/标签 ?

最佳答案

这就是子模块的工作方式,所以我不明白你的问题。让我尝试增强或修复您的工作流程。您需要 release 中的每个提交分支指向子模块中的相应提交,对吧?这很简单:在 release 中提交之前分支更新子模块,检查子模块中的正确提交并提交 super 项目中的更改:

# In the superproject
git checkout release

cd subdir # into the submodule
git checkout master # reconcile detached HEAD
git pull origin master # update the submodule
git checkout some-sha1 # if you don't want the latest commit in master

cd .. # back into superproject
git add subdir
git commit -m "Update submodule"

现在大家 git clone --recursive super 项目为分支 release 中的每个提交获取指向正确提交的子模块.

关于git - 是否可以将 git 子模块连接到主项目分支上的特定提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56338304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com