设置 Git 账户及邮箱
当我们在GitHub
中提交修改时,GitHub
通过我们本地git
配置文件中配置的邮箱地址,与我们的GitHub
账户相关联,这样GitHub
提交记录就可以关联提交者的GitHub
账户。
那么我们怎么在本地配置我们的git
邮箱呢?
全局 git 配置
我们可以使用git config
命令来修改本地git
配置。设置全局用户及邮箱:
git config --global user.name gitaccount git config --global user.email gitaccount@example.com
其中gitaccount
是我们的git
账户,gitaccount@example.com
是我们的git
邮箱。
修改配置后,可以查看本地git
配置文件:
cat ~/.gitconfig [user] name = gitaccount email = gitaccount@example.com
也可以使用命令来查看修改后的配置:
$ git config --global user.name gitaccount
$ git config --global user.email gitaccount@example.com
这里修改的是全局的`git 配置项,配置完成后,我们在所有的代码仓库中提交的修改,默认都将关联全局配置的账户及邮箱,除非我们为每个代码仓库单独配置账户及邮箱。
代码仓库git
配置
我们可以为每个代码仓库配置单独配置账户及邮箱。
取消全局配置:
$ git config --global --unset user.name $ git config --global --unset user.email $ git config --global user.name #全局配置账户已经移除 $ git config --global user.email #全局配置邮箱已经移除
进入代码仓库目录,修改配置:
$ cd git-repository/
$ git config user.name anothergitaccount
$ git config user.email anothergitaccount@example.com
修改后的配置可以使用命令查看:
$ git config user.name
anothergitaccount
$ git config user.email
anothergitaccount@example.com
也可以在代码仓库目录配置文件查看:
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://github.com/username/repository.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [user] name = anothergitaccount email = anothergitaccount@example.com
#Troubleshooting
##GitHub 提交记录无法关联账户
如果 GitHub 的提交记录没有关联本地设置的邮箱,可能是因为你没有在 GitHub 的邮箱设置项中添加你的邮箱。
添加的方法为:
首先在 GitHub 网页右上角点击设置按钮:
打开 Emails 页,在右侧添加你的邮箱:
修改完本地 git 账户、邮箱后,再次提交的代码会自动关联到设置的邮箱,但是之前的提交依然会关联之前设置的账户、邮箱。
##提交记录没有关联正确的邮箱
如果你本地 git 设置正确,但是 GitHub 上的提交记录仍然没有关联正确的邮箱,这有可能是设置的邮箱被环境变量覆盖了。查看以下环境变量是否设置:
$ echo $GIT_COMMITTER_EMAIL # 打印环境变量 GIT_COMMITTER_EMAIL $ echo $GIT_AUTHOR_EMAIL # 打印环境变量 GIT_AUTHOR_EMAIL
如果本地设置了这两个环境变量,且设置的值不是我们想要设置的邮箱,重新设置环境变量:
$ GIT_COMMITTER_EMAIL=gitaccount@example.com
$ GIT_AUTHOR_EMAIL=gitaccount@example.com
#参考
https://daemon369.github.io/git/2015/03/11/setting-email-in-git