Git 高级实战:Cherry-pick、Worktree、Bisect 与工程化实践
Git 的基础操作解决的是「如何提交代码」,分支与 Rebase 解决的是「如何协作开发」,撤销与恢复解决的是「操作出错以后怎么办」。 但在实际项目中,还会遇到一些更复杂的问题: 一个 Bug 修复已经提交到 main,如何同步到旧版本分支? 同一个项目需要同时开发两个功能,频繁切换分支非常麻烦怎么办? 线上 Bug 已经存在很久,如何从几百个 Commit 中快速找到引入问题的那一次提交? 如何建立合理的 Tag 和版本发布流程? 如何让 Git 在提交代码时自动执行检查? 团队应该采用什么样的 Commit、Branch 和发布规范? 这些问题对应的就是 Git 的高级能力。 本文重点介绍 cherry-pick、worktree、bisect、Tag、Hooks,以及一套适合 Web 项目的 Git 工程化实践。 Cherry-pick:只把指定 Commit 带过来 Merge 是以分支为单位整合代码,而 Cherry-pick 是以 Commit 为单位应用变更。 Git 官方文档对 cherry-pick 的定义非常直接:将一个或多个已有 Commit 引入的修改应用到当前分支,并生成新的 Commit。 例如现在有两个分支: main A --- B --- C feature/payment A --- B --- C --- D --- E --- F 其中: D = 支付功能 E = 支付页面 F = 支付测试 假设现在 main 只需要 D 的修改。...