• 动切换Git 身份神器gitego的安装和使用
  • 发布于 2天前
  • 21 热度
    0 评论
引言
你有没有过这样的经历?在公司代码库上提交了一行 user.name = Brandon,结果被同事集体@,甚至被老板约谈:“这是谁提交的?”。又或者,你刚提交完个人开源项目,却误用了公司邮箱,导致 GitHub 上的贡献记录混乱不堪,甚至可能引发安全问题。别担心,今天我要给大家安利一个超实用的 Git 工具 —— gitego,它不仅能帮你自动切换 Git 身份,还能管理 SSH 密钥、PAT(Personal Access Token),真正做到“到哪用哪的身份管理”。

一、什么是 gitego?
gitego 是一个基于 Go 编写的命令行工具,专为解决 Git 用户身份混乱问题而生。你可以为不同的项目目录设置不同的 Git 身份(比如工作、个人、客户项目),它会在你进入对应目录时自动切换。

它能管理的内容包括:
user.name 和 user.email(提交记录显示的身份)
SSH 密钥(用于 Git SSH 协议认证)
PAT(Personal Access Token,用于 HTTPS 协议认证)
一句话总结:gitego = Git 身份管家 + 自动切换小助手 + 提交安全守护者。

二、gitego 的核心功能
1. 自动切换身份
只需简单配置,gitego 就能根据你当前所在的目录自动切换 Git 身份。
比如:
gitego auto ~/dev/work/ work-ssh
gitego auto ~/dev/personal/ personal
当你进入 ~/dev/work/any-repo 时,它会自动应用 work-ssh 的配置,包括用户名、邮箱和 SSH 密钥。

2. 统一身份管理
一个 profile 可以同时管理多个身份要素:
提交身份:user.name、user.email
认证方式:SSH 密钥或 PAT
默认全局身份设置
再也不用手动敲 git config --global user.name 了!

3. 安全防护:提交前检查钩子
gitego 还提供了一个可选的 Git pre-commit 钩子,防止你在错误身份下提交代码,避免“社死”现场。
安装钩子只需一行命令:
gitego install-hook
4. 跨平台支持
支持 macOS、Windows、Linux,且能与各系统的安全凭证存储集成(比如 Keychain、Credential Manager),安全又方便。

三、安装与配置指南
安装前提
你需要安装 Go(版本 >= 1.24),然后运行:
go install github.com/bgreenwell/gitego@latest
确保你的 PATH 包含 Go 的 bin 目录(通常是 ~/go/bin)。
配置 Git 使用 gitego
# 清除旧的 credential helper
git config --global credential.helper ""

# 设置 gitego 为 credential helper
git config --global --add credential.helper "!gitego credential"
四、快速上手示例
1. 添加身份 profile
# 添加个人身份
gitego add personal --name "Brandon" --email "brandon.personal@email.com" --username "bgreenwell-personal"
# 添加工作身份(带 SSH 密钥)
gitego add work-ssh --name "Brandon Greenwell" --email "brandon.work@company.com" --username "bgreenwell-work" --ssh-key ~/.ssh/id_work
# 堆代码 duidaima.com
# 添加客户身份(带 PAT)
gitego add client-abc --name "Brandon G." --email "brandon@client-abc.com" --username "bgreenwell-client" --pat "ghp_YourClientPATHere"
2. 查看所有 profile
gitego list
输出示例:
ACTIVE  PROFILE     NAME                 EMAIL                       ATTRIBUTES
------  -------     ----                 -----                       ----------
        client-abc  Brandon G.           brandon@client-abc.com      [PAT]
*       personal    Brandon              brandon.personal@email.com
        work-ssh    Brandon Greenwell    brandon.work@company.com    [SSH]
3. 设置默认身份
gitego use personal
4. 自动切换配置
gitego auto ~/dev/work/ work-ssh
gitego auto ~/dev/personal/ personal
进入对应目录后,身份自动生效!

五、gitego 的典型使用场景
场景 说明
自由职业者/外包开发者 不同客户项目使用不同身份,避免混用
公司 + 副业 工作、开源、Side Project 身份隔离
多云管理 AWS、GCP、Azure 使用不同 PAT
学生/教师 学校、实习、教学项目身份分离
安全合规 满足企业安全策略,避免误操作导致泄露
六、常见问题与建议
Q:gitego 是不是必须用 Go 编写?
A:虽然它是用 Go 写的,但你不需要懂 Go 也能使用。它只是一个命令行工具,使用方式非常简单。
Q:gitego 支持哪些 Git 协议?
A:支持 SSH 和 HTTPS,完美兼容 GitHub、GitLab、Bitbucket 等主流平台。
Q:gitego 的安全性如何?
A:它使用系统自带的凭据管理器存储敏感信息(如 PAT),不会明文保存在配置文件中,安全性有保障。

七、总结
gitego 是一个非常实用的 Git 身份管理工具,尤其适合以下人群:
.多身份开发者(工作/个人/客户)
.频繁切换项目的开发者
.对安全合规有要求的企业用户
.想要提升开发效率的 Git 玩家
如果你也经历过“提交错身份”的尴尬,那就赶紧试试 gitego 吧!

GitHub 地址:https://github.com/bgreenwell/gitego
用户评论