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可能会发生冲突,此时需要手动处理冲突内容。
三、参考
打赏作者以资鼓励: