1.目标:去除中间4次task的提交
目标:去除中间4次task的提交
最终效果图,deb分支去除了4次task的内容
简要说明:
文件内容:
init 1;
init 2;
init 3;
task 1;
task 2;
task 3;
task 4;
rank 1;
rank 2;
rank 3;
rank 4;
rank 5;
没输入一行,做一次提交,然后commit的内容,就是该行文字;
我们这就使用命令行结合sourcetree一起处理一下~
2.步骤
- 2.1.创建一个分支deb(防止出错,所以先做个缓冲)
- 2.2.选择合适的点做
rebase - 2.3.合并潜在的冲突
2.1 创建一个分支deb
创建deb
2.2 选择合适的点做rebase
我们要删除task1 - task4,所以我们应该让rank1链接到inti3,所以选择init3作为链接点!!
【总结】删除某些commit的时候,找到前一个节点。作为rebase的开始
以init3作为链接点
右键要删除的commit
删除4个节点.jpg
有冲突
【重点】切记第一次rebase的时候,第一次解决冲突的时候特别重要,并且非常有迷惑性!
开始决绝冲突
【重点】过去我们和同事的共同操作一个文件的时候,有冲突的时候,也和这个图一样,我们过去解决冲突的时候,就是看看那些冲突,并且修改内容,但是上边的图有问题,就是我们看到了HEAD内容为空,我们自己的rank1中有这么多,按照过去的理解,那就保留了rank1的所有内容了,但是这是错误的,我们说过,rank1提交的内容是啥?是rank1;这段文字,所以不应该有task1-task4这样的字样,所以应该给予删除,从而保存正确的数据,所以我说非常有迷惑性!!!
图片.png
然后继续rebase,解决冲突,先标记已解决冲突,然后在继续合并
修改完文件,我们从sourcetree去跳转到terminal
解决冲突
git add .这个有几种功能,一种是跟踪文件,一种是标记已解决;
当解决完,我们要git rebase --continue是为了继续合并;
如果提示还有问题,那么就回到sourcetree 中接着看看冲突文件
- 1.决绝冲突文件
- 2.标记已解决
- 3.git rebase --continue
直到最后成功为止
最终效果图,deb分支去除了4次task的内容
如果你感觉一次就能成功,你可以直接使用目标分支
【彩蛋】,如果我们A分支在本地有,同时在远程分支也有,那么可能我们移除本地分支A中的某些commit,可能推不上去了,那么我们可以强推送一波,命令行为git push origin -f,-f 表示force暴力的意思








网友评论