该技能用于掌握 Git 高级操作,保持提交历史整洁、高效协作并在出错后恢复。适用场景包括:合并前清理提交历史;在不同分支间应用特定提交;查找引入缺陷的提交;同时开发多个功能;从 Git 误操作中恢复;管理复杂分支工作流;准备整洁的 PR;同步已分叉的分支。
核心能力: 交互式 rebase 编辑历史,操作项有 pick、reword、edit、squash、fixup、drop,如 git rebase -i HEAD~5、git rebase -i $(git merge-base HEAD main)。 cherry-pick 跨分支应用单个或范围提交,如 git cherry-pick abc123、git cherry-pick abc123..def456、git cherry-pick -n abc123。 bisect 二分查找引入缺陷的提交,可手动标记 good/bad,也可用 git bisect run ./test.sh 自动化(脚本以退出码 0 表示 good,1 至 127 表示 bad,125 跳过)。 worktree 在多个目录同时检出不同分支,如 git worktree add ../project-feature feature/new-feature、git worktree remove、git worktree prune。 reflog 记录引用移动,用于找回丢失的提交或分支,如 git reflog、git branch recovered-branch abc123。
典型流程:PR 前用交互式 rebase 压缩、改写与排序提交,再以 git push --force-with-lease 推送;用 cherry-pick 将热修复应用到多个发布分支;用 bisect 定位缺陷并配合测试脚本;用 worktree 在独立目录处理紧急修复;误用 git reset --hard 后通过 reflog 恢复。
高级技巧包括 autosquash(git commit --fixup、git rebase -i --autosquash)、拆分提交、部分 cherry-pick 文件。最佳实践:使用 --force-with-lease 而非 --force;只 rebase 本地未共享的提交;操作前建备份分支;冲突处理可用 git rebase --continue 或 --abort;bisect 前保持工作区干净。
资料未提供该技能的收费、价格、平台限制或效果数据。