Git 两个分支都在后面。如何合并这两个分支?

Git 两个分支都在后面。如何合并这两个分支?,git,git-merge,git-push,git-pull,bitbucket-server,Git,Git Merge,Git Push,Git Pull,Bitbucket Server,考虑中的分支位于已发布的存储库服务器中 考虑包含一组提交的分支a,从中创建分支B。 额外的提交被添加到分支B,比如说,它们正在积极开发中 此时,提交被添加到分支a 现在,分支A位于分支B之后,比如说10次提交,而分支B位于分支A之后,只有一次提交 现在,这两个分支无法合并,因为它们彼此至少落后一次提交。 为了保持一切同步,如何合并分支A和B?您可以使用git merge合并这两个分支。我不建议在这种情况下使用git rebase,因为您说过这两个分支都已发布到存储库服务器 我在你的帖子中描述了以

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

考虑包含一组提交的分支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中,您可以通过执行:git merge A来合并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 lg和git co是我创建的,目的是使使用git命令行更容易。它们代表my.gitconfig上配置的:


您可以使用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中,您可以通过执行:git merge A来合并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 lg和git co是我创建的,目的是使使用git命令行更容易。它们代表my.gitconfig上配置的:


好答案+1,但请不要使用别名,而不指定它们代表什么;Git的新手可能会被Git co、Git lg等搞糊涂。@Jubobs好主意。我正在用每个别名的定义更新答案。好答案+1,但请不要在没有指定别名代表什么的情况下使用别名;Git的新手可能会被Git co、Git lg等搞糊涂。@Jubobs好主意。我正在用每个别名的定义更新答案。