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

相关推荐
觉醒法师2 分钟前
HarmonyOS开发 - 电商App实例二( 网络请求http)
前端·http·华为·typescript·harmonyos·ark-ts
沈剑心2 分钟前
Kotlin的协程,真能提升编程效率么?
android·前端·kotlin
堕落年代13 分钟前
Vue主流的状态保存框架对比
前端·javascript·vue.js
OpenTiny社区24 分钟前
TinyVue的DatePicker 组件支持日期面板单独使用啦!
前端·vue.js
冴羽24 分钟前
Svelte 最新中文文档教程(22)—— Svelte 5 迁移指南
前端·javascript·svelte
树上有只程序猿28 分钟前
Vue3组件通信:多个实战场景,轻松玩转复杂数据流!
前端·vue.js
剪刀石头布啊36 分钟前
css属性值计算过程
前端·css
bin915340 分钟前
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14基础固定表头示例
前端·javascript·vue.js·ecmascript·deepseek
小华同学ai43 分钟前
吊打中文合成!这款开源语音神器效果炸裂,逼真到离谱!
前端·后端·github
颜酱1 小时前
后台系统从零搭建(三)—— 具体页面之部门管理(抽离通用的增删改查逻辑)
前端·javascript·react.js