Git进阶实战手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指引,将 @user_3c6cb52e/git-advanced-sh-4kvau7 安装到你的 AI 助手中。
技能介绍
解决了什么问题
日常 Git 协作里常见的几个痛点:想在多个分支上同时开工,只能反复 git stash 或先提交一堆 WIP;线上出现回归,找罪魁祸首靠肉眼二分,费时又容易漏;想把提交历史收拾干净再合并,却在 rebase 时把共享分支弄乱;想加校验却不知道 hook 该怎么配,误操作后又缺少恢复手段。这个技能把零散的进阶操作整理成一套可直接照做的清单。
技能如何工作
核心能力围绕四块展开:
- Worktrees:一条命令创建独立工作目录,多个分支并行修改,
.git元数据共享,不需要 stash,也不会污染当前工作区。 - Bisect:用
git bisect start圈定范围,再接git bisect run <测试命令>自动二分定位引入 bug 的提交,比手动git bisect good/bad快得多。 - Interactive Rebase:通过
git rebase -i整理提交,把 WIP、typo、调试日志合并或重写,合并到主干前把历史捋顺。 - Git Hooks:
pre-commit对暂存文件跑 lint,commit-msg强制提交信息格式,把质量关卡提前到本地。
配套还覆盖:
- Recovery Techniques:误删分支、错误 reset 时用
git reflog找回; - Useful Aliases:给常用组合命令起短名,减少记忆负担;
- Anti-Patterns:列出 force-push 到共享分支不用
--force-with-lease、rebase 已推送提交、误加大二进制不用 Git LFS、无脑git add .、忽略.gitignore、长期挂特性分支等坏习惯。
末尾附 Checklist,逐项对照:是否用 Worktrees 替代 stash,是否用 bisect run 自动找 bug,rebase 前是否清理提交,hook 是否覆盖 lint 和 message,force-push 是否用 --force-with-lease,危险操作前是否查 reflog,.gitignore 是否覆盖构建产物、依赖和环境文件。
适用边界与注意点
- Hook 只在本地生效,需要团队一致遵守,CI 仍需保留同样校验。
--force-with-lease不是万能保险,多人协作前仍要先同步远端状态。- 交互式 rebase 只适合整理尚未共享的本地提交,已推送的历史不要随意改写。
.gitignore只是第一道防线,密钥等敏感信息一旦入库要同步轮换。- Worktrees 会额外占磁盘和打开编辑器数量,适合并行任务明确的开发,不要无脑为每个分支都建。
使用场景
- 同时开发两个特性,想在各自目录里改代码,避免 stash 和 WIP 提交
- 线上出现回归,需要用 git bisect run 快速定位引入 bug 的提交
- 合并主干前想用交互式 rebase 清理提交,保持历史可读
- 团队提交信息混乱,想用 commit-msg 钩子强制统一格式
适合人员
- 需要长期维护多个分支、并行改代码的后端工程师
- 经常处理线上回归、需要快速定位问题提交的 SRE 或开发
- 想保持主干历史清晰、合并前整理提交的开发或技术负责人
- 希望统一团队提交规范、并在本地拦截坏提交的工程经理或维护者