不使用.gitconfig设置Git用户名和电子邮件?

时间:2017-03-02 11:05:14

标签: git macos dotfiles

我有一个包含.gitconfig文件的macOS dotfiles存储库。我想将usernameemail与此文件分开,以便这些变量永远不会作为我的公共dotfiles存储库的一部分提交。

我看到的一种方法是指定一个名为.extra的文件,将其保存在~/目录中(在.bash_profile中引用它)并在该文件中设置Git变量,以便它们在我的公共存储库外部,即我对.gitconfig所做的任何公开更改都包含usernameemail

问题是设置这些值的方法都不适用于我。每次尝试后,我都会收到以下消息:

  

您的姓名和电子邮件地址是根据自动配置的   在您的用户名和主机名上。请检查它们是否准确。   您可以通过明确设置来禁止显示此消息:

     

git config --global user.name "Your Name"

     

git config --global user.email you@example.com

     

执行此操作后,您可以使用以下命令修复用于此提交的标识:

     

git commit --amend --reset-author

我的.extra文件中有以下内容,但他无法正常工作:

  

GIT_AUTHOR_NAME="First Last"

     

GIT_COMMITTER_NAME="First Last"

     

EMAIL=email@example.com

我尝试过使用这些变量和其他变量的各种方法,以及包括和排除引号,甚至用export为这些行添加前缀。有点亏!

3 个答案:

答案 0 :(得分:7)

我找到了解决方案:

将以下内容添加到您的dotfiles'.gitconfig文件中:

  

[user] # These values are set in ~/.gitconfig_local

     

[include] path = ~/.gitconfig_local

在名为~/的{​​{1}}中创建一个文件,并在.gitconfig_local文件中添加您不想提交或公开的值。在这种情况下:

  

.gitconfig

正如您可能猜到的那样,[user] name = First Last email = email@example.com命令“链接”到存储库外部的本地辅助配置文件,因此是私有的。 [include]中的其余设置(例如别名,颜色和编辑器设置等)仍将公开。

答案 1 :(得分:2)

可以基于每个存储库设置所有设置:只需从black命令中删除--global

git config

然后,这些配置设置将存储在# from inside your repo : git config user.name "Your Name" git config user.email you@example.com 文件中(在repo文件夹中),并优先于全局配置选项。

这适用于任何git配置选项(别名,颜色,......)

note :您必须为您制作的任何新克隆或您要使用此身份的任何其他repo重复配置

答案 2 :(得分:0)

另一种可能性是对大多数配置使用$XDG_CONFIG_HOME/git/config(通常为~/.config/git/config)并将其包括在dotfiles存储库中。然后,您可以将.gitconfig添加到.gitignore并将其用于user.nameuser.email和其他您不想提交的值。

有关读取文件的顺序,请参见git-config documentation