2017-02-20 110 views
1

我想为我的Git提交创建不同的用户。例如,现在我们有5个系统与Git一起安装。但在提交到Git远程仓库中时,我可以在提交窗口中更改我的默认作者姓名和电子邮件。如何防止Git提交的作者被更改

我该怎么做才能让它们不能改变?

+1

我不认为你可以。也许(也许)你可以用git挂钩(https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks)或签署提交(https://help.github .com/articles/signing-commits-using-gpg /和http://pedrorijo.com/blog/git-gpg/) – pedrorijo91

回答

1

您的Git存储库是您的。你可以做任何你想要的。没有人可以阻止你,并且你不能阻止任何人做任何事情他们想要他们的存储库。

简而言之,没有什么 - 没有字面意思 - 你可以阻止其他人声称自己是你,或者阻止自己声称自己是别人。银行ATM具有同样的问题。为了确保你是,而弗雷德是弗雷德等等,你必须走出问题本身,并寻找认证。如果有人声称是Fred,你怎么知道他是否是Fred?特别是,如果你以前从未见过他,你怎么知道他是否真的是弗雷德?他可能是Ravi,或者Binyamin或者Jürgen!

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

Git在一定程度上内置了GPG签名验证(它不会执行GPG签名本身,它依赖于第三方软件)。您可以签署单个提交,也可以签署带注释的标记。出于一系列理由,签署个人提交通常比成本更高。 Git提交形式为Merkle Tree,因此检查注释标记的签名可以确保从该标记可达的提交的合理级别。 (但是,保护的数量并不比SHA-1大得多。)另请参阅GPG

1

正如你所提交你可以设置每个作者提交

git commit -m "Your commit message" --author="Author Name <[email protected]>" 

我已经包括了这个例子中,-m标志,但你可以排除它,在你喜欢的编辑器设定的提交信息。

这是假设你正在使用CLI,如果你使用GUI/IDE让我知道,我会看看如果我可以找到如何使用作者设置。

+0

这似乎没有回答OP的问题。他们问他们如何防止提交者更改作者信息。 –

+0

@DanLowe我在当时解释措辞时回答了这个问题 - 之后它通过编辑进行了更改。 –