Git高级技巧
将以下提示词粘贴到你的 AI 对话框中:
请根据官方安装指南 https://skillhub.cn/install/skillhub.md,把 @user_3c6cb52e/git-advanced-b50u 安装到你的 AI 助手中。
技能介绍
先解决的问题
Git 的日常用法很容易碰到天花板:想在两个分支上并行改东西,只能 stash 来回切,WIP 提交到处都是;线上出了 bug,只能靠肉眼在历史里二分定位引入点;待合并的分支上是一长串 fix typo、wip 这类无意义提交;团队里 git add . 不看 diff、对共享分支裸 --force、忘记 .gitignore 导致构建产物和密钥入库,这类事故反复发生。这个技能针对的就是这些反复出现的具体场景。
核心能力与关键步骤
- Worktrees:每个 worktree 有独立的工作目录,但共享同一个
.git仓库。feature/a和feature/b可以同时处于已检出状态,不再需要 stash 或提交 WIP 来切换分支。 - Bisect:在提交历史里做二分查找,定位引入 bug 的那一笔。最快的路径是配合
git bisect run把测试命令自动化,让机器替你完成二分。 - Interactive Rebase:合并进主干之前用交互式 rebase 整理提交——合并碎提交、重写无意义的 message,让历史保持可读。
- Git Hooks:
pre-commit对暂存文件跑 lint,commit-msg校验提交信息格式,把检查左移到提交时刻。 - Recovery Techniques:任何破坏性操作之前先查
reflog,它能告诉你 HEAD 曾经到过哪里。 - 别名、反模式与 Checklist:技能还整理了常用 aliases、一份明确的反模式清单(对共享分支裸
--force、推送后仍 rebase、不用 Git LFS 就提交大二进制文件等),以及可逐项勾选的实践 checklist。
适用边界
这些技巧不是魔法:worktree 解决的是并行工作流问题,不会替你管理分支生命周期;bisect run 需要一条能可靠判定成败的测试命令,项目没有可自动化的测试时只能退化为手动二分;交互式 rebase 会重写提交哈希,凡是已推送且被他人共享的提交,rebase 前必须先确认团队没有基于它继续工作;hooks 默认不随仓库分发,需要团队自行提交到 .git/hooks 或采用共享的 hook 管理方式。checklist 里的反模式本质上都是协作约定,工具能提醒,不能强制。
使用场景
- 需同时在两个特性分支改代码,不想频繁 stash 切换
- 线上出 bug 后,想用二分查找快速定位问题提交
- 合并分支前,想整理历史,合并无意义的 wip 提交
- 提交代码前,想自动检查格式,避免 lint 错误入库
适合人员
- 后端开发:需并行处理多个分支,频繁切换致代码冲突
- 测试工程师:线上 bug 定位耗时久,需自动化二分排查
- 仓库管理员:担心团队误操作共享分支,需 hooks 规范
- 前端开发者:合并前需整理历史,避免 wip 提交进主干