git-switch:一个把 GitHub 多账号、仓库体检与趋势发现放到本地桌面的开源工具

git-switch 是一个面向多 GitHub 账号使用者的本地开源桌面工具。它把账号身份、仓库 remote、Git Credential Manager、GitHub CLI、线上仓库、Star 收藏和趋势项目放进同一套可视化界面,适合同时维护个人号、组织号和客户/工作账号的开发者。
当前版本为 v1.1.4。项目采用 Electron 封装桌面版,也可以以本地 Web 服务方式运行;服务仅监听 127.0.0.1,不会把管理界面暴露到局域网或公网。
它解决的是什么问题
多账号 GitHub 协作中,真正麻烦的往往不是 git push 本身,而是“这个仓库现在会用哪个身份提交和推送”。常见情况包括:
- 同一台电脑上同时使用个人账号、公司账号和组织仓库。
- 仓库 remote 被写成了错误账号、非标准 remote 名,或 URL 中残留明文 token。
- 组织仓库仍应保持组织 owner,但希望指定某个账号身份推送。
- 本地仓库数量多,需要集中扫描、筛选问题仓并批量修复。
- 除了本地 Git 配置,还想管理线上仓库、Star 收藏、趋势项目和新建仓流程。
git-switch 的思路很直接:不制造额外的“切换命令”,而是让 Git 根据 HTTPS remote 地址自动载入对应账号的提交身份和凭据用户名。切换仓库时,本质上只需要调整 remote 地址,其余步骤交给 Git 的 includeIf hasconfig:remote.*.url 与 Git Credential Manager 完成。
多账号 HTTPS 切换原理
项目使用 Git 的条件包含配置。每个 GitHub 账号对应一个独立身份配置文件,主配置根据远程地址自动匹配 user.name、user.email 和凭据用户名。
当 remote 使用类似 https://github.com/<账号>/repo.git 的地址时,Git 会自动加载该账号对应的身份配置;Git Credential Manager 再按凭据用户名使用对应账号的授权信息。对于组织或他人仓库,默认不会强行改写 URL owner;如确有需要,可在 HTTPS 地址中显式写入 账号@ 来指定推送身份。
这让日常操作仍然保持为标准 Git 工作流:新增仓库时设置正确的 origin,已有仓库换号时更新 origin,之后正常提交和推送即可。
本地仓库管理与体检
“仓库”页面可扫描指定目录中的 Git 仓库,并识别所有 remote:优先使用 origin,也兼容第一个 GitHub remote,甚至能识别误写成 orginal 的情况。
扫描结果会显示仓库归属账号,并将明文 token、未配置账号、身份不符或非 origin remote 等问题仓自动排在前面。页面支持后台扫描、分页和每页 10/20/50/100 条展示,扫描过程中不会锁住其他功能。
针对常见问题,工具提供批量修复能力:
- 清理 remote URL 中的明文 token。
- 为未配置账号补充配置。
- 清除仓库内覆盖的
user.email。 - 将非标准 remote 名改回
origin。 - 对推送前状态做“体检”,检查远程名、身份匹配、凭据、连通性以及待推送提交。
线上仓库、Star 与趋势榜
安装 GitHub CLI 后,git-switch 还能将 GitHub 的线上信息整合进本地界面。
线上仓库页可加载个人和组织仓库,展示实际总数、Star、Fork、主要语言等信息;Star 收藏页可按账号查看真实收藏总数,并支持搜索、排序、本地关联和分页。
截图展示的“趋势榜”提供四类榜单:新秀增长、活跃热门、长青实力和贡献机会。它支持按时间范围、语言和最低 Star 数筛选,计算趋势分、Star 增长速度和活跃度,并利用本地历史快照展示真实的 Star/Fork 增量,而不是只给出静态排名。
建仓与桌面版体验
“建仓库”页面可以用指定 GitHub 账号创建仓库,随后直接关联本地项目并推送。对于不希望频繁面对命令行的用户,桌面版内置 Electron 与 Node.js,安装后无需额外安装 Node.js;启动后打开内嵌管理页面,最小化时保留在任务栏,关闭窗口则隐藏到系统托盘。
首次启动时,应用会检测 Git for Windows、Git Credential Manager 与 GitHub CLI,并在页面顶部给出安装说明和重新检测入口:
- Git for Windows 是本地扫描、身份切换、remote 调整和推送体检的必需依赖。
- Git Credential Manager 通常随 Git 安装,用于按账号管理 HTTPS 授权。
- GitHub CLI 为线上仓库、Star、创建仓库和浏览器授权登录提供支持;未安装时,本地 Git 功能仍可使用。
日志、隐私与诊断
v1.1.4 增加了集中诊断页,可查看应用版本、Git / Git Credential Manager / GitHub CLI、账号登录状态、缓存占用与近期日志。诊断报告支持复制脱敏内容或下载 JSONL 供维护者排查。
日志默认保存在本机 ~/.git-switch/logs/,单个日志达到 2 MB 后自动轮转,仅保留一个旧文件。项目明确对 GitHub token、密码、Authorization、凭据字段和本机用户目录做脱敏处理,且日志不会自动上传。
开发、测试与发布
项目使用 Node.js 与 Electron 构建。开发模式可通过 npm install 后运行 npm run desktop 启动;测试命令覆盖 Node 内置测试、接口与前端契约检查,CI 还会校验 server、应用与 Electron 代码语法。
打包支持 Windows、macOS 和 Linux:Windows 生成 Setup 与便携版 EXE,macOS 生成 DMG/ZIP,Linux 生成 AppImage/DEB。推送与版本一致的 Git tag 后,GitHub Actions 会在三端并行构建,所有构建成功后创建对应 GitHub Release,并附带源码压缩包。
适合谁使用
如果你经常在一台设备上维护多个 GitHub 身份,或者希望把仓库健康检查、远程地址修复、线上仓库浏览、Star 管理和趋势发现放在一个本地工具中,git-switch 是一个值得关注的开源选择。它保留 Git 原生 HTTPS 工作流,不要求用户记忆一套额外的切换命令,同时为日常管理补上了可视化和诊断能力。
