别再社死了!`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 目录后显示个人邮箱。说明我们的设置已经成功。

相关推荐
量子位7 小时前
字节版龙虾架构火爆GitHub!开源获35k+ Star,内置Skill全家桶,原生适配飞书
github·ai编程
悠然大月季7 小时前
git 怎么导出提交历史,文件是乱码
git·git导出历史记录·git导出历史乱码
chenshiming8029 小时前
在cursor下执行GIT回退版本
git
汪海游龙11 小时前
开源项目 Trending AI 招募 Google Play 内测人员(12 名)
android·github
HealthScience11 小时前
github怎么授权ssh(私人库授权)
运维·ssh·github
打点计时器12 小时前
Git快速上手教程
git
我才是一卓12 小时前
linux 安装简易 git 服务端并使用
linux·运维·git
CoderJia程序员甲12 小时前
GitHub 热榜项目 - 日榜(2026-03-22)
人工智能·ai·大模型·github·ai教程
阿里嘎多学长13 小时前
2026-03-22 GitHub 热点项目精选
开发语言·程序员·github·代码托管