该技能用于掌握高级 Git 技术,以便维护整洁的提交历史、高效协作,并从容应对各种出错情况。
适用场景:合并前清理提交历史;跨分支应用特定提交;查找引入缺陷的提交;同时开发多个功能;从 Git 误操作或丢失提交中恢复;管理复杂分支工作流;准备整洁的 PR;同步已分叉的分支。
核心能力:
- 交互式变基(git rebase -i),支持 pick、reword、edit、squash、fixup、drop 等操作。
- Cherry-pick,可将特定提交应用到其他分支,如 git cherry-pick abc123、git cherry-pick -n abc123。
- Git Bisect,用二分查找定位引入缺陷的提交,可自动运行测试脚本:git bisect run ./test.sh。
- Worktrees,无需暂存或切换即可同时处理多个分支:git worktree add ../project-feature feature/new-feature。
- Reflog,跟踪引用移动,可恢复已删除的提交或分支。
最佳实践:使用 --force-with-lease 替代 --force;只对本地提交变基;提交信息具描述性;保持原子提交;强制推送前先测试;注意 reflog 约保留 90 天;高风险操作前先创建备份分支。
常见陷阱:对公共分支变基、无 lease 强制推送、变基中丢失工作、忘记清理 worktree、实验前未备份、在脏工作目录上执行 bisect。
恢复命令包括 git rebase --abort、git merge --abort、git cherry-pick --abort、git bisect reset,以及通过 git reflog 找回误删分支。更详细的模式与示例见 references/details.md。