git - 手工编辑的补丁文件归功于谁?

标签 git github diff patch pull-request

my answer 的后续问题关于编辑 GitHub pull-requests 询问在应用补丁文件之前直接编辑补丁文件是否会导致对原作者工作的信任。由于它实际上并不是原始问题的一部分,因此我在这里将其作为一个新问题提出。

最佳答案

长话短说

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

Git 如何处理邮箱文件中的补丁

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

这是什么意思

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

然而,虽然这肯定是坏业,但从技术的角度来看,您可以想象将 Bob 完全从提交中删除。毕竟,它只是一个文本文件,您可以根据自己的需要进行修改,如果您更改邮箱中的发件人行,那么 Git 将在应用每个补丁时使用新值填充其作者字段。

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

关于git - 手工编辑的补丁文件归功于谁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066980/

相关文章:

git - 无法使用非 gitolite 管理员用户访问 gitolite 存储库

git 保持多个远程服务器与所有分支同步

javascript - 为初学者在 Javascript 中安装插件

git - 如何将未版本控制的代码 merge 到 Git 存储库中?

git - SourceTree 可以并排显示差异吗

git - 如何经常从主分支重新建立功能分支,而不强制推送到功能分支

git p4 端口错误导致失败

git - 如何在本地查看git中项目的Github WebView ?

github - Jenkins 失败并显示 github "git clone"

svn - 尝试让 rsync 将文件复制回 svn