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

3bygqnnd  于 2022-11-20  发布在  Git
关注(0)|答案(3)|浏览(152)

如何从远程目录中获取git中最后一个合并的分支名称?
已尝试
git日志--第一个父级--合并-1 --联机
但未获取分支名称
请帮帮忙

luaexgnf

luaexgnf1#

一般情况下,您不能。
一个合并提交可能会有 merge分支foomerge branch foo of someurl 形式的提交信息,但是要读取这些信息,你必须从远程获得提交。即使如此,也不能保证分支 foo 是否还存在,或者如果它确实存在,名称是否有意义。合并实际上是通过提交哈希ID而不是分支名称来工作的;分支名称可能消失。
如果你认为这里需要分支名称,你可能做错了什么。分支名称在其他版本控制系统中是有意义的,但是在Git中,依赖它们是不明智的。

zour9fqk

zour9fqk2#

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

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

2ledvvac3#

我花了很长时间来解决这个问题。我必须为我的CircleCi管道获取这些信息,为了解决这个问题,我使用了GitHub cli。具体来说,就是pr list命令:https://cli.github.com/manual/gh_pr_list
以下命令提供了合并到主文件gh pr list -s merged -B main -L 1中的最后一个PR的所有信息
然后你需要操作这个字符串,只得到分支名称,也就是“合并”之前的文本,我把它拆分成字符串,取倒数第二个元素。

相关问题