两个分支相互落后.如何合并两个分支



考虑的分支位于已发布的存储库服务器中。

考虑一个分支 A,其中包含一组从中创建分支 B 的提交。额外的提交被添加到分支 B 中(假设它们处于活跃开发中)此时,将提交添加到分支 A。

现在分支 A 落后于分支 B,

假设有 10 个提交,分支 B 落后于分支 A 一个提交。

现在这两个分支不能合并,因为它们至少通过一个提交相互支持。为了使所有内容保持同步,如何合并分支 A 和 B?

您可以将两个分支与 git merge 合并。我不建议在这种情况下使用 git rebase,因为您说两个分支都已经发布到存储库服务器。

我创建了以下情况(在您的帖子中描述):

$ git co A
$ git lg --all
* 4df39d7 - (HEAD, A) 2nd commit on A (9 seconds ago)
| * f1f57d8 - (B) 1st commit on B (39 seconds ago)
|/
* 8228446 - (master) . (2 minutes ago)
$ git co B
$ git lg --all
* 4df39d7 - (A) 2nd commit on A (2 minutes ago)
| * f1f57d8 - (HEAD, B) 1st commit on B (3 minutes ago)
|/
* 8228446 - (master) . (4 minutes ago)

因此,假设我们在分支B您可以通过执行以下操作来合并Agit merge A

这把历史变成了这样:

$ git merge A
$ git lg --all
*   5517453 - (HEAD, B) Merge branch 'A' into B (2 minutes ago)
|
| * 4df39d7 - (A) 2nd commit on A (5 minutes ago)
* | f1f57d8 - 1st commit on B (6 minutes ago)
|/
* 8228446 - (master) . (7 minutes ago)

附加说明:

git lggit co 是我创建的别名,以便更轻松地使用 git 命令行。他们代表(在我的.gitconfig上配置):

lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
co = checkout

最新更新