Git中作者和提交者有什么区别?

我刚刚在GitHub上遇到以下提交: https : //github.com/felixge/node-formidable/commit/0a0b150668daa3c6f01626d2565b898e5da12392

一个人如何在同一个提交上有多个作者?

那不是两个作者 – 那是作者和提交者。 这两个领域有不同的含义。 作者是创build内容的人,而提交者是实现内容的人。 当你做一个正常的提交,你是两个。 (两者都带有相关的电子邮件和时间戳。)但是,它们可以通过几个关键方式变得不同:

  • git format-patch / git am – 这一对可以让你把补丁变成补丁,通常通过电子邮件提交,然后让其他人应用它们。 你仍然是作者; 申请者是提交者。 这绝对是github上发生的事情。

  • git commit --amendgit rebasegit filter-branch 。 这些都是历史重写的基本变种,从单一承诺到分支历史到整个历史。 他们可能会修改comitter信息 – 特别是他们总是重写提交者时间戳 。 原作者保持原样(在默认操作模式下),如果作者也是重写者,他们的姓名和电子邮件仍然存在,但时间戳本质上是不同的。

没有多个作者与该提交相关联(目前也不能将多个作者分配给单个提交)。 在这种情况下,gliese1337是作者 ,而felixge是提交者 。 最有可能的是,这是因为gliese1337提交了一个被felixhe(仓库所有者)接受然后提交的请求。 这个工作stream在GitHub上很常见。 这对于项目维护人员通过电子邮件接收补丁程序的情况也很有帮助,因此补丁的作者自己仍然可以获得补丁的功劳,即使他或她没有对项目的提交权限。

一些相关的链接:

关于作者归属的简短Git Wiki部分
Git核心中的多个作者function的function请求

这不是多个作者。 一个是作者,另一个是提交者。

如果你想做一个克隆,你可以清楚地看到:

 $ git cat-file -p 0a0b150668daa3c6f016 tree 91edcb411b7cd0708c1f5bb05621846146c9425a parent 6b9ffe3653fe59f035b01ba1f46b5f2650be00ca author Logan Kearsley <chronosurfer@gmail.com> 1308937685 -0700 committer Felix Geisendo╠Иrfer <felix@debuggable.com> 1309117893 +0200 Slight but definite & consistent performance boost.