文章目录
说明
本教程按照 git在线练习 顺序进行,将在线测试的命令操作落地到 IDEA,使用开发工具来实现所有在线练习中的操作。
你可以结合 git在线练习 来学习本教程,先在线学习git命令,再在 IDEA 中实现相同操作。
cherry-pick
准备提交结构
- 切换到 master,并重置到第二次提交
- 删除 pushed 和 local 分支
新建 bugFix、side 和 another 分支
- 对bugFix、side和another分支,分别做两次提交
- 切换到 master
上面的提交历史对照 learngitbranching.js.org 的结构图
cherry-pick bufFix 2、side 1和another 2三个提交到 master 分支
选中这三个提交
右键选择 cherry-pick
如果出现代码合并提示,选择 merge,将 bufFix 2 提交的代码合并到 master 的代码
按照正确代码逻辑,向中间合并代码
完成后,生成了一个新的提交
接下来,按照相同的操作,完成 side 1 和 another 2 的代码合并操作,同样也会生成两个新的提交
上面的提交历史对照 learngitbranching.js.org 的结构图
交互式 rebase
准备提交结构
-
重置master到第二次提交
-
删除 bugFix、side 和 another 分支
-
做四次提交
上面的提交历史对照 learngitbranching.js.org 的结构图
用交互式 rebase 操作自由调整提交
在 master 分支,右键点击 “添加打印3”,选择交互式 rebase
在交互界面中,丢弃“添加打印3”
向上移动一步 “添加打印6”
查看将要执行的命令
在这里看到,会按以下顺序执行:
- 丢弃“添加打印3”
- 选取“添加打印4”
- 选取“添加打印6”
- 选取“添加打印5”
点击开始执行 rebase 操作
过程中可能会出现3次合并代码的操作提示,可以按照三步的顺序,合并三句打印代码
上面的提交历史对照 learngitbranching.js.org 的结构图
用交互 rebase 将 4,6,5 压缩成一个分支
learngitbranching.js.org 中略过了压缩分支的操作
右键点击“添加打印4”的提交,执行交互式 rebase
将 5 和 6 设置为 Fixup
设置完的状态如下
rebase 完成后,三次提交被压缩为一次提交