通过 commit id 查找 git 分支或分支

13

实际上,我正在尝试获取有关合并冲突的报告。我使用了“git blame”命令查看谁更改了哪一行,但是我找不到分支和存储库名称信息。

是否有一种方法可以从“git blame”或提交ID中查找文件的存储库名称、分支名称和作者名称,以便每当出现合并冲突时,我都可以向触及该文件/行的作者发送电子邮件以解决冲突。


可能是查找git提交来自哪个分支的方法的重复问题。 - Alex Kulinkovich
1个回答

10

git blame应该只会提供修订版本和作者信息,但:

  • 正如在"Git: Finding what branch a commit came from"中所述,你不能轻易地确定该提交所在的分支(分支可以重命名、移动、删除...),尽管git branch --contains <commit>是一个起点。
  • 我怀疑你无法找到它来自哪个仓库(除非在git log结果中仔细查找,试图找到来自ref/remotes命名空间的该提交的父级)。

如果你的仓库顶层有合适的.mailmap文件,你也将获得正确的电子邮件地址。

在简单形式中,文件中的每一行由一个作者的规范真实姓名、一个空格和用于映射到该名称的提交中使用的电子邮件地址(由<>括起来)组成。例如:

Proper Name <commit@email.xx>

非常感谢。所以没有直接的方法 :( 你能教我如何回溯代码/文件吗?Git blame会告诉你提交和作者。从提交ID回溯的方法有吗? - Senthil A Kumar
@Senthil:我在VonC链接的问题中回答了几种你可能会用到的回溯方式。 - Cascabel
谢谢Jefromi,我也收到了你的链接 :) (https://dev59.com/kXE85IYBdhLWcg3wl0jF#2707110)@VonC非常感谢,我将只使用作者名称来解决合并冲突。 - Senthil A Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接