Git多仓库提交用户信息动态设置实现方式

 更新时间:2026年04月25日 09:50:06   作者:holden丶  
本文介绍了在日常开发中,当需要同时管理多个远程仓库(如GitHub、Gitee、GitLab)并每个仓库使用不同的邮箱和用户名时,的操作步骤,通过修改.gitconfig配置文件,可以动态设置不同仓库使用不同的用户名和邮箱,从而避免频繁切换邮箱的的繁琐过程

前言

在日常开发中,我们可能需要同时管理多个远程仓库(如 GitHub、Gitee、GitLab),而每个仓库使用不同的邮箱和用户名。

比如,GitHub 和 Gitee 使用相同的邮箱,而 GitLab 使用另一个邮箱。

每次提交代码时手动切换邮箱非常繁琐,尤其是在多个仓库频繁提交的情况下。

解决方案

通过修改 Git 配置文件 .gitconfig,可以动态设置不同仓库使用不同的用户名和邮箱。以下是详细的操作步骤。

1. 新建外部配置文件

首先,新建一个文件 C:\Users\用户名\.gitconfig-holden ,并在其中设置你希望使用的 Git 用户名和邮箱(例如 GitHub 和 Gitee 使用相同的邮箱):

[user]
name = holden
email = holden.lee@aliyun.com

2. 修改全局配置文件

然后,打开全局 Git 配置文件 C:\Users\用户名\.gitconfig ,并按照以下内容进行配置:

[user]
name = xxx
email = xxx@gmail.com

# 对于 Gitee 和 GitHub,使用外部配置文件

[includeIf "hasconfig:remote.*.url:https://gitee.com/"]
path = ~/.gitconfig-holden

[includeIf "hasconfig:remote.*.url:git@gitee.com:"]
path = ~/.gitconfig-holden

[includeIf "hasconfig:remote.*.url:https://github.com/"]
path = ~/.gitconfig-holden

[includeIf "hasconfig:remote.*.url:git@github.com:"]
path = ~/.gitconfig-holden

# 配置 HTTP 请求缓冲区

[http]
postBuffer = 524288000

配置解释

[user] 配置:

全局默认的 Git 用户名和邮箱(适用于除 GitHub 和 Gitee 外的仓库)。

[includeIf "hasconfig:remote.*.url:https://gitee.com/"]

当远程仓库地址是 Gitee 时,加载外部配置文件 ~/.gitconfig-holden,并使用该文件中的 Git 用户名和邮箱。

[includeIf "hasconfig:remote.*.url:https://github.com/"]

当远程仓库地址是 GitHub 时,加载外部配置文件 ~/.gitconfig-holden,并使用该文件中的 Git 用户名和邮箱。

其他仓库:

对其他远程仓库使用默认的全局配置。

总结

通过这种方式,当你操作 GitHub 或 Gitee 时,Git 会自动使用 ~/.gitconfig-holden 文件中的用户名和邮箱,而 GitLab 等其他仓库则使用全局配置。

这样就解决了不同仓库提交信息不一致的问题,避免了频繁切换用户名和邮箱的麻烦。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VS Nuget的使用实践

    VS Nuget的使用实践

    Nuget是一个VS的扩展插件。我们在使用VS开发时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便,感兴趣的可以了解一下
    2021-09-09
  • 获取目录下所有文件名的代码

    获取目录下所有文件名的代码

    获取目录下所有文件名的代码,需要的朋友可以参考下。
    2011-07-07
  • 一文详解Git中分支本地和远程删除的方法

    一文详解Git中分支本地和远程删除的方法

    在使用 Git 进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧
    2025-06-06
  • Git Commit Message写错问题的解决方案

    Git Commit Message写错问题的解决方案

    作为一名开发者,提交代码时写错Commit Message是常见问题,今天就讲一下如何修改本地和远程仓库的Commit Message,重点解决“已Push到远程仓库”的场景,需要的朋友可以参考下
    2025-07-07
  • FlippingBook使用教程(附下载)

    FlippingBook使用教程(附下载)

    FlippingBook是一款收费的图书翻页效果的flash播放器,这里为大家介绍下FlippingBook的使用方法,需要的朋友可以参考下
    2014-12-12
  • 如何使用git reset进行多commit合并

    如何使用git reset进行多commit合并

    这篇文章主要介绍了如何使用git reset进行多commit合并问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • git与svn的区别及优缺点说明

    git与svn的区别及优缺点说明

    Git和SVN都是版本控制系统,用于代码管理,SVN是集中式的,需要联网并且中央服务器存在单点故障的风险,Git是分布式的,每个终端都是一个完整的仓库,不依赖中央服务器,提高了工作的灵活性和安全性,SVN易于管理权限,但必须联网工作且更新提交可能面临冲突
    2024-10-10
  • 高性能WEB开发 为什么要减少请求数,如何减少请求数!

    高性能WEB开发 为什么要减少请求数,如何减少请求数!

    我们先分析下请求头,看看每次请求都带了那些额外的数据.下面是监控的google的请求头
    2010-05-05
  • 性能测试QPS+TPS+事务基础知识分析

    性能测试QPS+TPS+事务基础知识分析

    本篇文章是性能测试基础篇,主要介绍了性能测试中对QPS+TPS+事务的基础知识分析,有需要的朋友可以借鉴参考下,希望可以对广大读者有所帮助
    2021-09-09
  • vscode单击新文件时覆盖旧文件的解决方法

    vscode单击新文件时覆盖旧文件的解决方法

    本文是给大家分享的作者在使用vscoe过程中遇到的一个小问题的解决方法,就是取消vscode单击新文件时覆盖旧文件,希望对大家能够有所帮助
    2020-02-02

最新评论