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

相关推荐
jacGJ7 小时前
记录学习--文件读写
java·前端·学习
毕设源码-赖学姐7 小时前
【开题答辩全过程】以 基于WEB的实验室开放式管理系统的设计与实现为例,包含答辩的问题和答案
前端
幻云20107 小时前
Python深度学习:从筑基到登仙
前端·javascript·vue.js·人工智能·python
我即将远走丶或许也能高飞9 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
钟离墨笺9 小时前
Go语言--2go基础-->基本数据类型
开发语言·前端·后端·golang
爱吃泡芙的小白白9 小时前
Vue 3 核心原理与实战:从响应式到企业级应用
前端·javascript·vue.js
卓怡学长10 小时前
m115乐购游戏商城系统
java·前端·数据库·spring boot·spring·游戏
老陈聊架构11 小时前
『AI辅助Skill』掌握三大AI设计Skill:前端独立完成产品设计全流程
前端·人工智能·claude·skill
Ulyanov11 小时前
从桌面到云端:构建Web三维战场指挥系统
开发语言·前端·python·tkinter·pyvista·gui开发
cypking11 小时前
二、前端Java后端对比指南
java·开发语言·前端