• 个性化定义多个 Git 托管平台配置


    一、背景说明

    本人使用了多个 Git 托管平台,包括 Github、Gitlab 和 Gitee。为了避免提交信息(主要是用户名和邮箱地址)错乱,我希望在向不同的托管平台提交内容时,能够自动设置相应的用户名和邮箱地址。

    二、解决方案

    1. 常规做法

    为每个 repo 单独设置用户名和邮箱地址。

    操作步骤如下:在 repo 的根目录执行 git config user.name yourname ; git config user.email yourname@email.com.cn

    但这种方法的缺点是操作繁琐,且极易遗忘。

    2. 更好做法

    使用 Git includeIf 给多个托管平台定义不同的配置。

    Git includeIf 是 Git 2.13 版本引入的一个非常有用的特性,它允许你根据当前工作目录的位置来包含不同的 Git 配置。这个特性特别适合在不同的工作环境中使用不同的 Git 配置。例如,你可能在工作时使用你的工作电子邮件地址进行提交,而在家里则使用你的个人电子邮件地址。通过使用 git includeIf,你可以自动地根据当前的工作目录来切换这些配置。

    三、includeIf 方案

    1. 配置

    (1)给每个托管平台指定保存的目录,如 Github、Gitlab 和 Gitee 平台的代码,我分别保存在D:\code\person\github\D:\code\work\gitlab\D:\code\person\gitee\ 目录下。

    (2)在 .gitconfig 配置文件中通过 includeIf 指定各托管平台指定目录对应的个性化配置。配置如下:

    .gitconfig,该文件默认保存在用户根目录下,配置如下:

    [includeIf "gitdir:D:/code/work/gitlab/"]
        path = ~/.gitconfig-gitlab
    
    [includeIf "gitdir:D:/code/person/gitee/"]
        path = ~/.gitconfig-gitee
    
    [includeIf "gitdir:D:/code/person/github/"]
        path = ~/.gitconfig-github
    

    ~/.gitconfig-gitlab,该文件与 .gitconfig 同目录,配置如下:

    [user]
        name = gitlab-name
        email = gitlab-name@mail.com.cn
    

    ~/.gitconfig-gitee,该文件与 .gitconfig 同目录,配置如下:

    [user]
        name = gitee-name
        email = gitee-name@mail.com.cn
    

    ~/.gitconfig-github,该文件与 .gitconfig 同目录,配置如下:

    [user]
        name = github-name
        email = github-name@mail.com.cn
    

    说明: Windows 系统中,.gitconfig 配置中需将 gitdir 路径分隔符由反斜杠\ 转为 正斜杆 /,如:D:\code\person\github\ 转为 D:/code/work/gitlab/

    2. 验证

    在各托管平台指定目录下任意 repo 执行以下脚本验证:

    git config user.name
    
    git config user.email
    

    四、补充说明

    以此类推,善用 includeIf, 不仅能自定义多个托管平台的提交信息,也能进行其他类似的个性化设置。

    九、参考资料

    Organizing multiple Git identities

    docs git-config

  • 相关阅读:
    局域网综合设计-----计算机网络
    Java学习笔记——接口
    四台kvm虚拟机搭建Hadoop HA集群
    Kotlin基础学习笔记之第六章——kotlin的类型系统
    任务五 处理连续型数据
    Linux 命令行小技巧 – !叹号的用处
    Git 使用技巧:5个提高效率的命令,不再只会pull和push
    在 docker 中设置容器自动启动
    ctfshow学习记录-misc入门(图片篇-颜色通道50-59)
    Oracle/PLSQL: Lead Function
  • 原文地址:https://www.cnblogs.com/zengzuo613/p/18111440