git 如何列出重定基后合并的分支?

vuktfyat  于 2022-12-02  发布在  Git
关注(0)|答案(1)|浏览(86)

在Azure DevOps中,我的PR策略被设置为“半线性”,这意味着当您合并拉取请求时,它会首先重定基础,然后再合并。
这使得清理本地分支变得非常困难,因为我的普通git branch --merged origin/master不支持这种情况。
我如何才能可靠地批量确定哪些本地分支已被“有效合并”,以便我可以删除它们?
注意:我将push.default设置为current,并且我总是将远程跟踪分支设置为origin/master。因此,任何依赖于检查每个本地分支的上游远程跟踪分支的解决方案都将不起作用(尽管,我确实使用相同的名称将分支推送到远程;我们只是不能依赖远程跟踪分支来实现这一点)。我想提到这个细节,以防任何解决方案都会利用远程跟踪分支。
我发现了一个类似的SO问题,Git: How do I list local branches that are tracking remote branches that no longer exist?,但就我而言,它没有可接受的答案。

hiz5n14c

hiz5n14c1#

我能想到的一种方法是尝试(空运行)将topic分支的基重定到origin/master上a-如果它创建了no新的提交,那么topic分支可以被安全地删除
这是因为默认情况下rebase不创建空提交
另一种方式(可能更简洁)是:

git switch -c temp-topic-branch topic-branch
git merge origin/master
git reset --mixed origin/master
git status -s

如果git status -s导致空输出-可以安全地删除主题分支

相关问题