我有一个脚本碰撞版本并使用凹凸进行提交并对其进行标记。我遇到的问题是确保开发从远程获取然后合并到功能分支以确保PR合并期间没有冲突。
如何检查功能和开发是否<同步合并?
答案 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。)