git-advanced-workflows
掌握高级Git工作流,包括变基(rebase)、拣选(cherry-pick)、二分查找(bisect)、工作树(worktrees)与引用日志(reflog),以保持提交历史的整洁并应对各类异常场景。适用于管理复杂的Git历史记录、协作开发功能分支或排查仓库问题。
作者
分类
开发工具安装
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
Git Advanced Workflows - 高级 Git 工作流完全指南
技能概述
掌握 Git 高级技术,包括交互式 rebase、cherry-pick、bisect、worktree 和 reflog,帮助开发者维护整洁的提交历史、高效协作开发,并从任何 Git 操作失误中恢复。
适用场景
合并前使用交互式 rebase 整理提交历史,压缩 typo 修复、重写提交信息、重新排序逻辑提交,让审查者更容易理解你的改动。
需要将某个 bug 修复或功能从开发分支移植到其他分支时,使用 cherry-pick 精确应用单个或连续提交,避免不必要的合并。
当代码出现问题但不确定是哪个提交引入时,使用 git bisect 通过二分查找快速定位到引入 bug 的具体提交。
核心功能
1. 交互式 Rebase
Git 历史编辑的瑞士军刀。支持 pick(保留)、reword(修改信息)、edit( amend)、squash(合并)、fixup(丢弃信息的合并)、drop(删除)六种操作,让你完全控制提交历史。
git rebase -i HEAD~5 # 编辑最近 5 个提交
git rebase -i --autosquash main # 自动合并 fixup 提交2. Cherry-Pick 与 Bisect
cherry-pick 用于跨分支移植特定提交,支持单提交、范围提交、仅暂存等多种模式;bisect 则通过二分查找快速定位问题提交,还支持自动化测试脚本。
git cherry-pick abc123 # 应用单个提交
git bisect start HEAD v1.0.0 # 在 HEAD 和 v1.0.0 之间查找
git bisect run npm test # 自动化测试查找3. Worktree 与 Reflog
worktree 让你同时在不同目录处理多个分支,无需频繁切换或 stash;reflog 是你的安全网,记录 90 天内的所有引用移动,可恢复任何"丢失"的提交。
git worktree add ../project-hotfix hotfix/urgent # 创建独立工作树
git reflog show HEAD # 查看历史移动记录常见问题
Git rebase 和 merge 有什么区别?什么时候该用哪个?
rebase 会移动你的提交,创建线性历史,适合清理本地未推送的提交、保持分支与主分支同步;merge 保留真实历史结构,适合整合已完成的公共分支。重要原则:只对本地未共享的提交执行 rebase,避免影响协作者。
如何找回被误删的 Git 提交或分支?
Git reflog 是救星,它记录所有引用变更(包括删除),保存期 90 天。执行 git reflog 找到目标提交的哈希值,然后用 git branch recovered-branch <hash> 或 git checkout <hash> 恢复。即使执行了 git reset --hard 或删除了分支,只要在 90 天内都能找回。
Git bisect 真的比逐个提交回退快吗?
bisect 使用二分查找算法,时间复杂度 O(log n)。100 个提交只需要约 7 次测试就能定位问题,1000 个提交也只需约 10 次。相比逐个回退,效率提升显著。配合自动化测试脚本(git bisect run)可以实现无人值守查找。
技能边界
本技能专注于 Git 分支管理和历史操作的高级用法,不涉及 Git 内部原理、子模块管理、稀疏检出等话题。如果你需要的是基础 clone/push/pull 操作,建议先熟悉 Git 基础命令。