两个分支都在彼此之后.如何合并这两个分支?

Nav*_*nis 1 git git-pull git-merge git-push bitbucket-server

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

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

现在,分支A在分支B后面,让我们说10次提交,而分支B在分支A后面通过一次提交.

现在这两个分支无法合并,因为它们至少只有一个提交就可以了.为了使所有内容保持同步,如何合并分支A和B?

Edi*_*enz 5

您可以合并两个分支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)
Run Code Online (Sandbox Code Playgroud)

所以假设我们在分支机构中B你可以合并A:git 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)
Run Code Online (Sandbox Code Playgroud)

附加说明:

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
Run Code Online (Sandbox Code Playgroud)