Git 之 Cherry-Pick
什么是摘樱桃? 在分支协作中,出现以下这种情况,假设我的 main 分支只想要 feat 分支的 E 或者 F 的改动,此时就需要用到像摘樱桃一样给那几个提交摘过来(一个个小提交就像小樱桃),也就是 cherry-pick。 理解起来不难,但在实际操作中,还是有一些小问题的。我把目前摘樱桃的情况归为三类: 第一类是无冲突直接摘,例如 E 提交创建了一个新文件,这时 main 直接摘 E 过来是没问题的。 第二类是假设 F 是基于 E 的改动,但是我摘的时候,只摘了 F 过来,没有摘 E,此时摘樱桃操作会卡住。 第三类是你摘过来的提交和你本地的提交产生了冲突,此时需要解决冲突,cherry-pick 操作会卡住。 无冲突直接摘 这个没什么好说的,很简单,所以这里介绍一下几个 cherry-pick 的命令,分别是 git cherry-pick A // 只摘提交 A git cherry-pick A..B // 摘提交(A, B] git cherry-pick A^..B // 摘提交[A, B] git cherry-pick --abort // cherry-pick 操作终止,回滚 git cherry-pick --continue // 解决冲突后,cherry-pick 操作继续执行 所摘提交的依赖提交未摘 现在 feat 分支中有一个 main 分支中不存在的文件 READMEX.md,feat 中分别有两个提交,提交 A 是创建文件并写入一些内容,提交 B 是在文件中追加了一些内容。 ...