分享

Git cherry-pick 使用总结 转

 ala咪s 2019-07-25

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢?

这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某些commit的更改重新在另一分支上重新提交一遍. 对于我们的应用背景而言,就是把分支dev_01上某几个commit的更改在分支dev_02上再提交一遍。那么上述问题的解决方案如下:

假设我们需要将dev_01上的两个commit 合并到dev_02上,两个commit的commit id 分别如下:

    1. 20c2f506d789bb9f041050dc2c1e954fa3fb6910

    2. 2633961a16b0dda7b767b9264662223a2874dfa90

那我们可以这样写:
  1. git cherry-pick

  2. 20c2f506d789bb9f041050dc2c1e954fa3fb6910

  3. 2633961a16b0dda7b767b9264662223a2874dfa9

多个commit-hash使用空格分割, commit-hash最好按提交时间先后排列, 即最先提交的commit放在前面.

注意:上面这条cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id。 如果我们想让每个commit 拣选后暂缓提交,等到所有commit都拣选完成后,自己手动commit,应该怎么办呢?答案是用-n 选项:

  1. git cherry-pick -n

  2. 20c2f506d789bb9f041050dc2c1e954fa3fb6910

  3. 2633961a16b0dda7b767b9264662223a2874dfa9

这样,当git cherry-up后,这两个commit上的更改就被merge到本地的dev_02分支了,此时这些更改就像是你再dev_02分支上自己手动添加的一样,注意此时这些更改并没有被提交。

执行git status 会列出这些改动。

此时,就可以按正常流程(git commit, git push)来提交改动了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多