别再社死了!`includeIf` 一招搞定 Git 提交者信息错乱,守护你的邮箱隐私

在公司项目和自己开源项目之间切换容易提交错误的提交者信息,比如在 github 项目用公司邮箱和账号 push 了代码,导致泄露隐私。本文将介绍一个非常优雅的方案的实现 git 公司账号和个人账号的自动切换。

手动挡 🕹️

我们可以手动订正,用下面的命令修改最近一个提交的的提交者信息:

js 复制代码
git commit --amend --author="legend80s <git@github.com>"

然后使用 gum use github/legend80s 将本项目锁定为 github 账号,或使用 gum use corp 切换到公司账号。

gum 介绍见 www.npmjs.com/package/@ga...

下面的账号需要你预先用 gum 设置好。

ts 复制代码
❯ gum list

Currently used name=liuchuanzong email=liuchuanzong@cnaeit.com
┌────────────┬───────────────┬─────────────────────────┐
│ group-name │         name  │                   email │
├────────────┼───────────────┼─────────────────────────┤
│     global │name_in_company│name_in_company@corp.com │
│       corp │name_in_company│name_in_company@corp.com │
│     github │    legend80s  │        foobarbar@qq.com │
│  legend80s │    legend80s  │        foobarbar@qq.com │
└────────────┴───────────────┴─────────────────────────┘

如何一劳永逸避免出现该问题呢,即进入公司目录自动使用公司账号,进入自己项目目录则切换到私人账号。

最近学到一个 git 配置,分享给大家~

自动挡 🚙

条件配置一劳永逸 includeIf

公司项目和个人项目存放在不同的固定路径下,在 ~/.gitconfig 中使用 includeIf 指令,则会根据工作目录的路径,自动加载对应的 Git 配置。非常优雅的方案。

这个方法能实现"进入目录,自动切换配置",非常适合项目路径规整的情况。以 windows 为例,使用 git bash:

设置

假设我们将公司代码库放在 D:/workspace/company/ 个人放在 F:/workspace/github/

  • 第一步:创建专用配置文件

    为你公司的工作目录创建一个独立的配置文件,比如 ~/.gitconfig-company

    ini 复制代码
    # ~/.gitconfig-company
    [user]
        name = 你的公司用户名
        email = company-email@example.com

    同理,可以为个人项目创建 ~/.gitconfig-github

  • 第二步:修改全局配置

    编辑你的全局Git配置文件(通常是 ~/.gitconfig),使用 includeIf 指令:

    ini 复制代码
    [user]
        # 这里是你的全局fallback配置,可设置个人账户信息
        name = 用户名
        email = foo@example.com
    
    # 当工作在公司目录下时,加载公司专用的配置
    [includeIf "gitdir:D:/workspace/company/"]
        path = ~/.gitconfig-company
    
    # 当工作在个人目录下时,加载个人专用的配置
    [includeIf "gitdir:F:/workspace/github/"]
        path = ~/.gitconfig-github

    注意gitdir: 后面的路径必须以斜杠 (/) 结尾,以确保匹配该目录下的所有项目。

效果

初始化不进入工作和个人项目目录,git config user.email 显示全局设置邮箱,进入公司目录后显示公司邮箱,进入个人 github 目录后显示个人邮箱。说明我们的设置已经成功。

相关推荐
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
李少兄10 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
草梅友仁11 小时前
墨梅博客 1.4.0 发布与开源动态 | 2026 年第 6 周草梅周报
开源·github·ai编程
学电子她就能回来吗13 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
xuhe216 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
先跑起来再说16 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
宇宙帅猴17 小时前
GitHub 私有仓库认证完整指南:告别密码错误,使用 PAT 令牌
github
前端市界19 小时前
用 React 手搓一个 3D 翻页书籍组件,呼吸海浪式翻页,交互体验带感!
前端·架构·github
happyprince19 小时前
2026年02月07日热门github项目
github
承渊政道19 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee