美文网首页
Git分支中移除中间某几次的提交

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

作者: mkb2 | 来源:发表于2018-02-08 22:40 被阅读164次

    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暴力的意思

    相关文章

      网友评论

          本文标题:Git分支中移除中间某几次的提交

          本文链接:https://www.haomeiwen.com/subject/garxtftx.html