cherry-pick



 

准备提交结构


 

  • 切换到 master,并重置到第二次提交
  • 删除 pushed 和 local 分支

a

 

新建 bugFix、side 和 another 分支
a


 

  • 对bugFix、side和another分支,分别做两次提交
  • 切换到 master

a

cherry-pick bufFix 2、side 1和another 2三个提交到 master 分支




选中这三个提交

a




右键选择 cherry-pick

a

如果出现代码合并提示,选择 merge,将 bufFix 2 提交的代码合并到 master 的代码

a




按照正确代码逻辑,向中间合并代码

a




完成后,生成了一个新的提交

a

接下来,按照相同的操作,完成 side 1 和 another 2 的代码合并操作,同样也会生成两个新的提交

a

 

交互式 rebase



 

准备提交结构


 

  • 重置master到第二次提交
  • 删除 bugFix、side 和 another 分支
    a

 

  • 做四次提交

a

 

用交互式 rebase 操作自由调整提交




在 master 分支,右键点击 “添加打印3”,选择交互式 rebase
a




在交互界面中,丢弃“添加打印3”

a

向上移动一步 “添加打印6”
a




查看将要执行的命令

a

在这里看到,会按以下顺序执行:

  1. 丢弃“添加打印3”
  2. 选取“添加打印4”
  3. 选取“添加打印6”
  4. 选取“添加打印5”

a




点击开始执行 rebase 操作
a

过程中可能会出现3次合并代码的操作提示,可以按照三步的顺序,合并三句打印代码

a

 

用交互 rebase 将 4,6,5 压缩成一个分支

learngitbranching.js.org 中略过了压缩分支的操作




右键点击“添加打印4”的提交,执行交互式 rebase

a




将 5 和 6 设置为 Fixup

a

设置完的状态如下
a




rebase 完成后,三次提交被压缩为一次提交

a

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐