git cherry-pick 将一个 commit 应用到多个分支」的摘要信息

需求场景 公司的一个控制设备运行的 android 平板蓝牙 app,针对每个客户都有一个独立的版本, 功能和界面都有所不同。而有的客户又针对他们自己的客户,又做了功能和 UI 区分,但是差异很小。 所以就放到了一个 git 代码仓库中进行管理,但是不同版本使用了不同的 branch 分支进行管理。 在维护多个分支时,会遇到需要同时向多个分支添加同一个功能的需求。 手动去每个分支修改一遍代码可太麻烦了,这时候,git cherry-pick 就排上了用场。 可以将一个 commit 应用到多个不同分支上。 操作流程 先在某个分支 A 上,将功能开发好,提交一个 commit。 然后,切换到另一个分支 B,通过 git log 查看之前提交的那个 commit 的 id。然后,执行 git cherry-pick <commit-id> 这样,分支 B 就获得了分支 A 的那个 commit 的改动。 冲突 毕竟两个分支的代码有一定的差异,所以遇到冲突很正常。例如: > git cherry-pick 42f37ae Auto-merging app/src/main/java/com/sunzhongwei/ble/Utils.kt CONFLICT (content): Merge conflict in app/src/main/java/com/sunzhongwei/ble/Utils.kt Auto-merging app/src/main/java/com/sunzhongwei/ble/MainViewModel.kt error: could not apply 42f37ae... some commit message hint: after resolving the conflicts, mark the corrected paths hin...