有没有这种困惑,就是在一个分支上开发一堆功能,提交了很多 commit,但是突然上级告诉你,只上一个功能,你是不是束手无策,需要在这个分支上重新检出新分支,然后把不上的代码全部删掉。等后续需要的时候还无法 commit,需要再全部一点点加回来。
 现在你有一个新技能,他可以让你找出需要的 commit,然后从原分支提炼出来,放到新分支里。
 git cherry-pick 是一个 Git 命令,用于将单个提交从一个分支应用到另一个分支。这个命令非常有用,当你想要将一个或多个特定的提交从一个分支移植(或“拾取”)到你当前所在的分支时。
以下是如何使用 git cherry-pick 的基本步骤:
-  找到提交的哈希值: 
 首先,你需要找到你想要拾取的提交的哈希值。这可以通过git log命令完成,或者在 Git 的图形化界面中查找。例如:git log --oneline这将显示提交的简短哈希值和提交信息。 
-  切换到目标分支: 
 接着,切换到你想要应用提交的分支。例如,如果你想要将提交拾取到master分支,你需要先切换到master分支:git checkout master
-  执行 cherry-pick 操作: 
 使用git cherry-pick命令加上你想要拾取的提交的哈希值。如果有多个提交,可以一次性指定多个哈希值,用空格分隔。例如:git cherry-pick <commit-hash>如果你想要拾取多个提交,可以这样做: git cherry-pick <commit-hash1> <commit-hash2> <commit-hash3>
-  解决可能出现的冲突: 
 如果在拾取过程中出现冲突,Git 会暂停操作并让你解决冲突。你需要手动编辑冲突文件,并使用git add命令标记它们为已解决。然后,继续 cherry-pick 操作:git cherry-pick --continue如果你决定不进行 cherry-pick 操作并取消当前的操作,可以使用: git cherry-pick --abort
-  推送到远程仓库(如果需要): 
 一旦 cherry-pick 操作成功完成,并且所有提交都已推送到远程仓库,你可以使用git push命令将更改推送到远程分支:git push origin master
请注意,cherry-pick 操作会创建新的提交哈希值,即使它们与原始分支中的提交内容相同。这是因为提交的元数据(如作者、日期等)可能会发生变化。因此,拾取的提交将不会与原始提交具有相同的哈希值。