FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
您的足迹: git cherry-pick使用方法
git cherry-pick使用方法

一、需求

多分支的代码库,经常需要将不同分支的变更进行合并。

  • 一种情况是,需要另一个分支的所有代码变动,那么就采用合并(git merge)。
  • 另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 git cherry-pick。

二、cherry-pick

假设branchA分支有以下提交记录:

snippet.bash
[yz@test test]$ git log    # branchA
commitid1
commitid2
commitid3
commitid4

现有以下不同需求:

pick特定某个commit

假设,需要将 branchA 的 commitid2,合并到 branchB,则:

snippet.bash
git checkout branchB
git cherry-pick commitid2

pick特定某几个commit

假设,需要将 branchA 的 commitid3和commitid1,合并到 branchB,则:

snippet.bash
git checkout branchB
git cherry-pick commitid3 commitid1

注:请按提交顺序排列commit id。

pick连续多个commit

假设,需要将 branchA 的 commitid3 至 commitid1多个连续commit,合并到 branchB,则:

snippet.bash
git checkout branchB
git cherry-pick commitid4..commitid1

注:

  • 请按提交顺序排列commit id。
  • 范围为左开右闭,所以,以上命令不会合并commitid4的变更。
  • “..”两个小点不可省略,且前后无空格。

解决冲突

cherry-pick可能会发生冲突,此时需要手动处理冲突内容。

三、参考



打赏作者以资鼓励: