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

相关推荐
爱勇宝7 分钟前
从前端到全栈,我最后学会的是:先做产品
前端·后端
console.log('npc')10 分钟前
Grill-Me 技能使用教程
前端·大模型·产品·skill·需求
真空回流焊炉23 分钟前
数字功率芯片真空共晶设备实操教程与要点解析
前端·人工智能
伞伞悦读30 分钟前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda
mayaairi30 分钟前
JS DOM属性操作完全指南:内容、样式与自定义属性
开发语言·前端·javascript
avi911135 分钟前
Threejs新版本后glb导出提示.x问题GLTFExporter,替代3dmax
开发语言·前端·javascript·threejs·glb·gltfexporter
吨吨ai1 小时前
Codex 实战:用 Git 分支 + pytest 构建可回滚的 AI 开发流程(2026年8月27日)
人工智能·git·pytest
treesforest1 小时前
前端表单提效实践:基于IP地理位置实现国家区号智能预填
前端·网络协议·tcp/ip·ip定位·ip属地
用户298698530141 小时前
React 中 Word 文档转图片的实践方案
前端·javascript·react.js
Csvn1 小时前
异步并发控制:手写并发池、竞态防护与取消的完整方案
前端·javascript