User: 注意它和 Git 中的 user.name 不是一个概念.
a. 配置文件中的 User 是登录提供 Git 服务的平台 (如这里的 GitHub) 的服务器主机时指定的用户名, 比如 GitHub 中 clone 项目时选择 SSH, 链接均以 Git@GitHub.com 开头,@ 前面的 Git 就是 GitHub 对应服务器主机中的一个用户名, 即上面设置的 User,@ 后面的 GitHub.com 就是 HostName);
b. Git 中的 user.name 是用来追踪代码的, 提交代码时显示的作者名字就是它, 比如在 GitHub 中, 我的 user.name 就是 xiaoxi666. 这里引出了另外一个问题: 我在本机中配置了多个 Git 账号, 如何在不同的项目中自动切换不同的作者名字? 比如我在公司的代码库里提交代码时, 用的就是另外一个名字而非 xiaoxi666. 这部分内容涉及到了 Git 的配置(可以在终端输入 Git config --help 查看官方说明), 你一定有过下面这种配置的经历:
- Git config --global user.name "user_name"
- Git config --global user.email "user_name@example.com"
实际上, Git 有三种配置选项, 分别对应于 --system ,--global,--local, 上面就是 --global 选项. 三种配置选项分别对应于三个配置文件:
- --system -> /usr/local/Git/etc/gitconfig
- --global -> ~/.gitconfig
--local -> 你的项目仓库路径 /.Git/config
这三种配置文件的优先级由低到高为:--system,--global,--local, 优先级高的配置会覆盖优先级低的配置. 一般情况下, 我们不会去设置 --system 选项, 主要用的是 --global 和 --local. 正如网上满天飞的教程中, 我们一般会设置 --global, 这样就不用在每个项目中设置一遍了; 但是如果配置了多个 Git 账号, 需要在一些项目中使用不同的作者名字, 就需要单独为该项目设置 --local. 需要注意的是, --local 选项只能 cd 到当前项目路径下中执行, 否则会报错 fatal: --local can only be used inside a Git repository.
注一: 设置 --local 时记得同时设置 user.name 和 user.email, 如果只设置 user.name, 提交名字虽然正确了, 但 user.email 还是用的 --global 中的 user.email, 这会导致 GitHub 仓库中显示的提交者却不会链接到你的账号: 头像是灰色的八爪鱼, 名字也没有链接.
注二: 如果 --system,--global,--local 都没有设置 user.email, 将无法提交代码, 因为无法识别代码作者. 在设置了 user.email 的前提下, 如果 --system,--global,--local 都没有设置 user.name, 则会使用计算机登录用户名作为代码提交的作者名字.
来源: https://www.cnblogs.com/xiaoxi666/p/9975981.html