我是Linux世界的新手,也是git的新手。最近,我建立了版本控制,通过创建一个名为“dotfiles”的Git存储库来管理我的dotfiles。但是,每当我提交任何更改时,都会要求我输入Git用户名和密码,然后我的用户名和电子邮件地址将自动插入到我的.gitconfig
文件中的user
部分中。现在,这还可以,因为Git 'dotfiles‘存储库是私有的,但是在将来,我可能会将这个存储库公开。如果是这样,我不希望我的用户名和电子邮件地址显示在.gitconfig
中。我怎样才能防止这种情况发生?
我注意到在马蒂亚斯·拜恩斯.gitconfig
文件中没有user
部分,并且有下面的commit
部分:
[commit]
# https://help.github.com/articles/signing-commits-using-gpg/
gpgsign = true
我还注意到,在阿尼什·阿塔利氏.gitconfig
文件中没有commit
部分,但是user
部分包含以下内容:
[user]
useConfigOnly = true
发布于 2020-08-17 17:16:11
Git要求您提供一个名称和一个电子邮件地址才能提交。这些值被插入到您所做的每个提交中,并且它们必须是非空的,并且必须满足一些基本的验证。按照惯例,这个名字是你的个人名字,但这并不是Git本身所要求的,尽管你参与的项目可能需要它。
但是,尽管如此,您不需要在~/.gitconfig
中,甚至在任何配置文件中提供它们。如果环境变量GIT_AUTHOR_NAME
、GIT_AUTHOR_EMAIL
、GIT_COMMITTER_NAME
和GIT_COMMITTER_EMAIL
存在,Git将首先读取它们。但是,这通常不是一个好主意,因为当您使用git commit --amend
时,它会重写值,并且您希望使用另一种技术。
git-commit(1)
解释了其他选项:
如果(某些)这些环境变量没有设置,则信息来自配置项
user.name
和user.email
,或者(如果不存在)环境变量/etc/mailname
获取,在该文件不存在时返回到完全限定的主机名)。如果设置并被环境变量覆盖,author.name
和committer.name
及其相应的电子邮件选项将覆盖user.name和user.email。典型的用法是只设置user.name
和user.email
变量;其他选项是为更复杂的用例提供的。
我通常将我的名字留在user.name
中,并在shell配置中适当地设置EMAIL
。请注意,一些程序,特别是Homebrew程序被破坏,并从环境中过滤EMAIL
,所以这并不是在所有情况下都能工作。依赖system字段和邮件设置是正确的不是一个好主意,因为通常不是。
最后,请注意,您可以使用一个不同的配置文件(通常在~/.config/git/config
中)来存储不希望存储在主~/.gitconfig
中或签入到您的dotfiles存储库中的值。我这样做是为了像commit.gpgsign
这样的值,因为并不是所有我使用的系统都有我的私钥和签名提交,因此系统取决于我是否可以签名和使用什么密钥。
https://unix.stackexchange.com/questions/604844
复制相似问题