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

相关推荐
郭老二1 小时前
【前端】vue3:编译步骤
前端
不在逃避q2 小时前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·arcgis·npm
夏殇之殁2 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
The Chosen One9852 小时前
高进度算法模板速记(待完善)
java·前端·算法
陈随易2 小时前
MoonBit抓包模块pcap,查看电脑的每一次联网通信
前端·后端·程序员
新中地GIS开发老师3 小时前
WebGIS开发学生作品|低空航天管理与航线规划系统
前端·javascript·webgis·三维gis开发
用户059540174463 小时前
大模型对话记忆持久化踩坑实录:用 Playwright 自动化测了 300 次,终于揪出会话丢失的真凶
前端·css
丙氨酸長鏈3 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
kyriewen4 小时前
面试官让我手写虚拟列表——AI生成的版本,快速滚动几下就白屏了
前端·javascript·面试
IT_陈寒5 小时前
Vite热更新失效?你可能漏了这个配置
前端·人工智能·后端