Git分支中移除中间某几次的提交

2018-02-08  本文已影响164人  mkb2

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
创建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 中接着看看冲突文件

直到最后成功为止


最终效果图,deb分支去除了4次task的内容

如果你感觉一次就能成功,你可以直接使用目标分支

【彩蛋】,如果我们A分支在本地有,同时在远程分支也有,那么可能我们移除本地分支A中的某些commit,可能推不上去了,那么我们可以强推送一波,命令行为git push origin -f,-f 表示force暴力的意思

上一篇下一篇

猜你喜欢

热点阅读