【问题标题】:How to prevent author of Git commit from being changed如何防止 Git 提交的作者被更改
【发布时间】:2017-02-20 09:54:14
【问题描述】:

我想为我的 Git 提交创建不同的用户。例如,现在我们有 5 个系统安装了 Git。但是在将更改提交到 Git 远程存储库时,我可以在提交窗口中更改我的默认作者姓名和电子邮件。

我怎样才能使它们无法更改?

【问题讨论】:

标签: git commit author


【解决方案1】:

您的 Git 存储库是您的。你可以对它做任何你想做的事情。没有其他人可以阻止您,您也无法阻止其他任何人他们他们的存储库进行任何操作。

简而言之,没有什么——实际上没有什么——你可以阻止别人声称自己是你,或者阻止你自己声称自己是别人。这与银行 ATM 的问题相同。为了确保您是,并且 Fred 是 Fred,等等,您必须跳出问题本身并查看 身份验证。如果有人声称是 Fred,你怎么知道他是不是 Fred?特别是,如果你以前从未见过他,你怎么知道他是否真的是弗雷德?他可能是 Ravi、Binyamin 或 Jürgen!

如果你和 Fred 有一个共同的秘密,或者以其他方式决定是否相信他,你可以使用它。这就是所有你可以做的:决定,当你从某人那里获得一些提交时,当他们告诉你他们是 Fred 时你是否相信他们。

Git 在某种程度上内置了 GPG 签名验证(它自己不做 GPG 签名的东西,它依赖于第三方软件)。您可以签署单个提交,或签署带注释的标签。出于一系列充分的理由,签署个人提交通常成本高于收益。 Git 提交形成Merkle Tree,因此检查带注释标签的签名可以合理地保证从该标签可访问的提交。 (不过,保护量并不比 SHA-1 大多少。)另见GPG

【讨论】:

    【解决方案2】:

    在提交时,您可以设置每个提交的作者

    git commit -m "Your commit message" --author="Author Name <author.name@example.com>"
    

    我已经为这个示例添加了 -m 标志,但您可以将其排除并在您喜欢的编辑器中设置提交消息。

    这是假设您使用的是 CLI,如果您使用的是 GUI/IDE,请告诉我,我会看看能否找到如何使用作者设置。

    【讨论】:

    • 这似乎没有回答 OP 的问题。他们在询问如何防止提交者更改作者信息。
    • @DanLowe 我在解释当时的措辞时回答了这个问题 - 它已被编辑更改。
    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    相关资源
    最近更新 更多