提交487128950df6ee433c131b5feaafe81ee86629f4可以在https://github.com/signalwire/freeswitch.git找到。
git log -1 487128950df6ee433c131b5feaafe81ee86629f4 --pretty=fuller 印刷:
commit 487128950df6ee433c131b5feaafe81ee86629f4
Author: Travis Cross <tc@traviscross.com>
AuthorDate: Fri Mar 21 06:12:02 2014 +0000
Author: Anthony Minessale <anthm@freeswitch.org>
AuthorDate: Fri Mar 14 02:59:13 2014 +0500
Commit: Travis Cross <tc@traviscross.com>
CommitDate: Mon Mar 24 12:54:50 2014 +0000
Use the system version of APR / APR-util if possible
Autodetect whether the system libapr / libaprutil has our
necessary modifications and use it if it does.
Run Code Online (Sandbox Code Playgroud)
它有 2 个作者。如果 fsck 检查打开,则将此提交推送到 Gitlab 或 Github 可能会失败,抱怨remote: error: object 487128950df6ee433c131b5feaafe81ee86629f4: multipleAuthors: invalid format - multiple 'author' lines.
我很好奇这个提交是如何创建的。记录多个作者的解决方案之一是附加Co-authored-by在提交消息中。由于可以创建两个作者的提交,为什么它不是内置方法?为什么这样的提交被视为坏对象git fsck?
一个 git commit 对象只是一个压缩的文本文件。这个恰好有两个作者。
$ pigz -d < .git/objects/48/7128950df6ee433c131b5feaafe81ee86629f4
commit 438tree 070633dfc3ea352dfb1094822f477111e519a9ca
parent cde20f6fe68523d9416d2fed72435a8ba880a269
author Travis Cross <tc@traviscross.com> 1395382322 +0000
author Anthony Minessale <anthm@freeswitch.org> 1394747953 +0500
committer Travis Cross <tc@traviscross.com> 1395665690 +0000
Use the system version of APR / APR-util if possible
Autodetect whether the system libapr / libaprutil has our
necessary modifications and use it if it does.
Run Code Online (Sandbox Code Playgroud)
我很好奇这个提交是如何创建的。
你得问问特拉维斯·克罗斯他们到底是怎么做到的。进行提交只不过是将文本写入文件。
为什么这样的提交被 git fsck 视为坏对象?
在内部,Git 每次提交只能有一个作者。允许多个作者需要重新设计内部结构。
虽然git-log会显示多个作者,这可能是一个实现怪癖。其他工具不会尊重两位作者。例如,git shortlog --group=author只计算对 Anthony Minessale 的提交。
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |