Git Cherry-Pick

场景

你本地有一个feature分支. 假设完成开发需要10次commit, 当前你commit了8次. 此时有需求要你把前5次commit的结果合并到master上, 这个时候就可以使用git cherry-pick

命令行

  • git log 查找并复制第5次commit的hash码
  • git stash save 把本地未暂存的修改藏起来(如果有的话)
  • git checkout master 切换回master分支
  • git cherry-pick hash码
    -e 选项可以编辑commit信息, 如果为空, 则取消提交, 但feature分支中前5次commit修改的文件会被暂存, 等待重新提交; -x 选项会使用提交信息后面出现(cherry picked from commit xxx)等文字, 场景中feature只是本地的分支, Git手册不建议添加这些信息
  • git checkout feature 回到feature分支
  • git stash pop 释放之前的被藏起来的修改, 继续开发

图形界面

以WebStorm为例, 图形界面操作如下(JetBrains系列的产品通用):

图形界面操作

  1. 切换到master分支
  2. 打开版本控制界面(快捷键⌘+9)
  3. 左键点击需要合并的commit
  4. 点击樱桃图标

后记

cherry-pick名字好听, 方便好用.

注: 跟git cherry不是同一回事

Fork me on GitHub