git | 如何管理多个 git 身份

如果你有多个 git 账户,比如个人的(github、gitee),还有公司的(@weChat,@xxx)等等,这样你的本地可能有多个项目,不同的项目需要使用不同的账户,提交代码到不同的平台。

git config 配置

通常情况下,一般会配置一个全局的 config,每次提交没有设置 local 的话默认会走这个配置。

  • git config --global user.name xxx 设置 global username
  • git 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)。

参考

Organizing multiple Git identities

相关推荐
泯泷4 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
野槐7 小时前
前端项目优化(有了我,会发生...)
前端
Flynt7 小时前
HN 382分热文里的终端小技巧,我实测了一遍,git pickaxe 最值
git·命令行
aa小小8 小时前
【无标题】
前端
计算机魔术师9 小时前
还在单线程跟 AI 聊天?Claude Code 并行多会话让你一个人干三个人的活
前端
志尊宝9 小时前
Vue3 零基础每日笔记(038):亲手封装 useDebounceFn 与 useThrottleFn——高频事件的流量阀
前端·javascript·vue·html·vue3
JavaGuide9 小时前
对标 MinIO!全新一代分布式文件系统正式发布
前端·后端
风骏时光牛马9 小时前
AI驱动自动化业务工作流搭建实践
前端
码云之上9 小时前
Skill 里的脚本终于能跑了,星悟接 CubeSandbox 的纪实
前端·人工智能·前端框架
IT_陈寒9 小时前
Vue computed属性这个坑,我居然踩了三次才爬出来
前端·人工智能·后端