2010-05-17 175 views
11

其实我试图得到关于合并冲突的报告。我使用'git blame'来查看谁改变了哪一行,但我找不到分支和存储库名称信息。从提交ID找到git分支或分支

有没有办法从'git blame'或从提交ID'找到一个文件的存储库名称,分支名称和作者名称,以便每当发生合并冲突时,我都可以发送电子邮件给已触及的作者该文件/行来解决它。

+0

的可能的复制[了解哪个分支git的承诺来自何方(http://stackoverflow.com/questions/2706797/finding-what-branch-a-git-commit-came -from) – 2015-11-26 13:20:30

回答

9

​​应该只给你的版本和作者,但:

  • 如“Git: Finding what branch a commit came from”所提到的,你不能轻易找准犯下的情况下(分支可以改名为分支,移动,删除...),尽管git branch --contains <commit>是一个开始。
  • 我怀疑你可以找到它来自的存储库(除非可能通过努力寻找git log结果,试图找到来自ref/remotes命名空间的提交的父代)。

现在,如果您在存储库的顶层有合适的.mailmap,那么您也将拥有正确的电子邮件地址。

在简单的形式中,文件中的每一行由作者,空白,以及(由<>封闭)在提交所使用的电子邮件地址映射到名称的规范实名。例如:

Proper Name <[email protected]> 
+0

非常感谢。所以没有直接的方法:( 你可以教我如何回溯代码/文件。Git怪将告诉提交和作者。有没有办法从提交ID回溯? – 2010-05-17 12:49:32

+0

@Senthil:我回答了这个问题VonC链接到几种你可能能够回溯的方式 – Cascabel 2010-05-17 17:36:09

+0

谢谢Jefromi也有你的链接:)(http://stackoverflow.com/questions/2706797/git-finding-what-branch-a-commit-came- from/2707110#2707110) @VonC非常感谢,我独自解决了合并冲突时的作者姓名 – 2010-05-18 10:56:00