我假设“写访问”仅适用于推送。未检查提交中的提交人和作者信息。它是静态信息,很容易伪造(git rebase --reset-author-date)。你会得到什么?如果你正确地完成了他们的工作,那么谁做了真的重要吗?如果他们让别人做这件事有关系吗? 不要依赖提交中存储的信息。如果您确实必须这样做,那么强制他们对所有提交进行GPG签名,并且只允许签名提交。验证后接收挂钩或管道中的签名。但即便如此,他们也可以伪造作者信息,然后签署承诺书。 所有这些尝试都是徒劳的。听着,我刚刚写了一个“艾伦·P”的承诺:
$ GIT_AUTHOR_NAME='Alan P.' GIT_AUTHOR_EMAIL='alanp@users.stackoverflow.com' git commit -m 'I honestly wrote this code all by myself!'
[master cca77e6] I honestly wrote this code all by myself!
Author: Alan P <alanp@users.stackoverflow.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 anyfile
$ git log -1
commit cca77e63c2ac4135e65ce0a35f60d05a50e362f8 (HEAD -> master)
Author: Alan P <alanp@users.stackoverflow.com>
Date: Wed Oct 19 19:20:05 2022 +0200
I honestly wrote this code all by myself!
或者更简单:
$ git commit --author='Alan P. <alanp@users.stackoverflow.com>' -m 'Another commit that definitely nobody but me authored'
1条答案
按热度按时间1cosmwyk1#
我假设“写访问”仅适用于推送。未检查提交中的提交人和作者信息。它是静态信息,很容易伪造(
git rebase --reset-author-date
)。你会得到什么?如果你正确地完成了他们的工作,那么谁做了真的重要吗?如果他们让别人做这件事有关系吗?不要依赖提交中存储的信息。如果您确实必须这样做,那么强制他们对所有提交进行GPG签名,并且只允许签名提交。验证后接收挂钩或管道中的签名。但即便如此,他们也可以伪造作者信息,然后签署承诺书。
所有这些尝试都是徒劳的。听着,我刚刚写了一个“艾伦·P”的承诺:
或者更简单: