如果你有多个 git 账户,比如个人的(github、gitee),还有公司的(@weChat,@xxx)等等,这样你的本地可能有多个项目,不同的项目需要使用不同的账户,提交代码到不同的平台。
git config 配置
通常情况下,一般会配置一个全局的 config,每次提交没有设置 local 的话默认会走这个配置。
git config --global user.name xxx
设置 global usernamegit config --global user.email xxx@xxx.com
设置 global email
通过这样配置之后的内容,一般会存在 ~/.gitconfig
中,可以输入 cat ~/.gitconfig
查看对应的配置
sh
[user]
name = test
email = test@github.com
但是当有其他账户对应的新的项目提交时候,又需要单独设置一遍本地的配置,当你的项目越来越多,重复的设置也会有点让人暴躁 lol。
文件结构
对于我来说,我的本地项目一般有两个层级,第一层是各个平台(github、gitee、gitlab、gitea)等等,之后再是每个平台提交的项目文件夹,所以文件结构大致是这样的:
sh
├── gitea # work email
│ ├── project-bar
│ └── project-foo
└── github # personal email
├── react-button
└── react-input
...
对于每个平台,需要用不同的账号进行提交等 git 操作。这个时候可以选择搭配 git 的 Conditional Includes
配置,不同的文件夹读取不同的账户配置,来彻底区分各种不同平台提交的账户配置,一次性配置好,不用后续再一个个配置。
.gitconfig 配置
这里我们在 ~
目录下,分别创建 .gitconfig-github
和 .gitconfig-gitea
,分别配置好自己的账号,内容如下
sh
[user]
name = test
email = test@github.com
然后再 .gitconfig
中加下相应的配置如下
sh
[user]
name = test
email = test@github.com
[includeIf "gitdir:./xx/github/"] # 这里使用 ./等路径,使用 ~ 可能不管用
path = .gitconfig-github
[includeIf "gitdir:./xx/gitea/"]
path = .gitconfig-gitea
然后到自己的项目里提交验证,一般就通了,如果不通,检查下这里的文件夹路径,要写对,要不不生效(不要问我为什么 T_T)。