我如何在 git 中知道一个分支是否已经重新建立在 master 上?

Taf*_*afT 10 git git-rebase branching-and-merging

这与如何在 git 中知道分支是否已经合并到 master非常相似但是是关于检查重新定位的代码。在我目前正在处理的存储库中,似乎有一些功能分支在将更改重新定位到 master 之后被搁置了。在删除分支之前检查是否已完成的最佳方法是什么?

该分支上的大多数建议都建议使用分支上最后一次更改的 SHA id 密钥来检查其在 master 中的存在。我可以看到这是确保合并的最佳方法,但是当您重新设置此 SHA 时,此 SHA 已更改。

我有一个我也会发布的答案,但我想知道人们是否认为有更好的选择。

Jos*_*uss 6

在 rebase 忠实于原始提交消息的情况下,@TafT 的回答会很好地工作。此外,使用

git log --oneline --cherry master...some-branch
Run Code Online (Sandbox Code Playgroud)

=通过从某个分支复制到 master 的每个提交显示完全相同。

如果发生挤压等,提交消息会更改,或者如果您的变基发生冲突,则两种解决方案都不起作用。在这种情况下,我建议如下(Checkout to detached HEAD,这样我们就不会意外地推送这个合并):

git checkout master~0
git merge some-branch
Run Code Online (Sandbox Code Playgroud)

除非你的代码发生了巨大的变化,如果合并没有改变,那么分支已经被重新定位。否则,它显然没有。