谁得到手工编辑补丁文件的功劳?

时间:2012-06-16 20:58:02

标签: git github diff patch pull-request

关于编辑GitHub拉取请求的my answer的后续问题询问是否在应用之前直接编辑补丁文件会导致对原作者的工作表示赞赏。由于它不是原始问题的真正原因,我在这里要求它作为一个新问题。

1 个答案:

答案 0 :(得分:6)

TL; DR

Git会将作者身份归功于补丁的创建者,而不是当前的提交者。但是,您可以覆盖此行为,

Git如何处理邮箱文件中的修补程序

git am命令处理存储在邮箱中的一系列补丁。在GitHub拉取请求的情况下,每个补丁文件只是存储在mbox format中的一系列差异。 Git解析邮箱中的 From lines ,以确定每次提交的GIT_AUTHOR_NAME和GIT_AUTHOR_EMAIL的值。

这意味着什么

即使您手动编辑各个差异,Git通常会将Bob视为作者,将您视为提交者。这通常是The Right Thing™。

然而,虽然这肯定是不好的业力,但从技术的角度来看,你可以想象完全将Bob从提交中编辑出来。毕竟,它只是一个文本文件,你可以自己适应,如果你更改邮箱中的From行,那么当它应用每个补丁时,Git将使用新值填充其作者字段。

这样做肯定会产生道德和法律影响,但问题在于归因。默认情况下,Git正确地赋予作者身份,但最终控制权归你所有。