检查develop分支是否已合并到功能分支中?

时间:2015-09-16 18:07:10

标签: git

我有一个脚本碰撞版本并使用凹凸进行提交并对其进行标记。我遇到的问题是确保开发从远程获取然后合并到功能分支以确保PR合并期间没有冲突。

如何检查功能和开发是否<同步合并?

1 个答案:

答案 0 :(得分:8)

git branch命令将显示合并或未合并的分支。例如,如果您在分支main上并且分支side在某个时候合并,但另一个分支ahead尚未合并:

$ git branch --merged
* main
  side
$ git branch --no-merged
  ahead
$ 

使用它来检查可能(但有些痛苦)。但是,如果您只想测试一个特定的分支(或者确实是任何特定的提交对),那么&#34;是否未被合并&#34;就提交图而言,质量就是一个人是否是另一个人的祖先。

git merge-base命令有一个执行此测试的模式,用于两个特定的提交(您可以在the gitrevisions documentation中列出的任何形式指定):

$ if git merge-base --is-ancestor side main; then
>     echo side is merged into main
> fi
side is merged into main
$ 

git branch --merged使用的测试(对于每个分支,将其与当前分支进行比较)与测试git merge-base --is-ancestor使用的测试相同,即第一次提交的SHA-1(此处为{ {1}})是当前分支提示的祖先。 (一个提交被认为是它自己的祖先,所以你总是从side^{commit}获得你自己的当前分支。当然假设你在一个分支上 - 如果你在&#34;分离的HEAD&#34;状态,所有已命名分支的列表不包括您的分离HEAD。)