如何在 git 中获取最后一个合并的分支名称

Posted

技术标签:

【中文标题】如何在 git 中获取最后一个合并的分支名称【英文标题】:How can I get the last merged branch name in git 【发布时间】:2021-06-19 18:04:07 【问题描述】:

如何从远程获取 git 中最后合并的分支名称

试过

git log --first-parent --merges -1 --oneline

但没有得到分支名称

请帮忙

【问题讨论】:

我同意这样的回答:“如果您认为这里需要一个分支名称,那么您可能做错了什么。”如果您解释了为什么要知道分支名称,这可能会有所帮助,也许我们可以提供另一种方法来完成您所需要的。 【参考方案1】:

这是您需要给出的命令(将分支名称从 origin/master 更改为您正在检查合并的任何分支):

git log --merges origin/master --oneline --grep='^Merge' -1 | grep -oe "[^']*[^']" | sed -n 2p

【讨论】:

git log --merges origin/master --oneline --grep='^Merge' -1 7051bf7 (HEAD -> master, origin/master, origin/HEAD) 合并到major/1 (拉取请求#3)没有得到分支名称【参考方案2】:

一般来说,你不能。

合并提交的提交消息可能具有 merge branch foomerge branch foo of someurl 形式的文本,但要阅读该消息,您必须从远程获取提交。即便如此,也不能保证分支 foo 不再存在,或者如果它确实存在,该名称意味着什么。合并确实通过提交哈希 ID 起作用,而不是通过分支名称;分支名称可能会消失。

如果您认为这里需要一个分支名称,那么您可能做错了什么。 do 分支名称在 other 版本控制系统中有意义,但在 Git 中,依赖它们是不明智的。

【讨论】:

以上是关于如何在 git 中获取最后一个合并的分支名称的主要内容,如果未能解决你的问题,请参考以下文章

如何从git的任何分支中获取分支列表?

如何在 Git 的当前分支中获取最新的标签名称?

git:如何从远程分支获取并合并到本地分支?

Git - 如何合并功能分支,但排除一些提交?

如何解决git的“不是我们可以合并的”错误

Git:在本地合并远程分支