zoukankan      html  css  js  c++  java
  • 【git】把test分支的合并到了开发分支,想要恢复干净的开发分支,怎么办? 【git reset 和 git revert的区别】

     

    把test分支的合并到了开发分支,想要恢复干净的开发分支,怎么办?

     参考【git  reset  和  git  revert的区别

     

    1.首先将现在已经被污染的 开发分支,新checkout一个不同命的相同分支出来,在这个clone分支上搞事情,保留原 开发分支上的开发代码 不要丢失

     

     

    2.解下来,先根据提交记录,在目标开发分支上的条线上,找到把test分支 合并到 开发分支之前的一个commit 或者前几个节点,总之是选取一个干净的commit节点

     

     

     

     

    3.右键点击 reset,将代码回退到这个指定的commit节点

    (原理:git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本)

    (表现:使用reset进行回退后,这个commit节点之后的所有 提交记录+代码  都会被清除。 就是说,执行完reset后,git log查看提交记录,这个节点后的提交记录都会被清除)

    git  reset  是 回滚到 某个指定版本

     

     

     

     

     

    4.选择 Mixed  点击  Reset

     

     

    此时会提示 

     

     

     

    5.然后对项目进行commit操作,下面会显出出来 未被加入Git缓冲区的 一堆红色文件,就是需要删除的文件,即被test分支污染的一堆文件

     

     

     

    6.右键直接删除

     

     

     

    7.然后 再右键项目,直接 Revert回滚 当前这个版本的代码

    (原理: 有commit1 --> commit2--->  commit3,先要想保留commit3,清除commit2,即  使用命令 git revert -n commit2版本号)

    (表现:执行结果就是  现在的git log  就是  commit1 --> commit2--->  commit3 --->commit4,  即所有提交记录都能看到,不会被清除,但是 commit2这次提交被 回滚了)

    (git  revert 是回滚某个指定版本,不是 回滚到)

     

     

     

    8.这个时候 commit项目,就是没有任何提交记录的

     

     

    9.然后将master分支往该分支再pull一次,保证该分支能拥有较新的master代码

     

     

     

     

    10.解决完冲突后,该分支就已经成了 较前时间节点的 干净开发分支了

     

     

     

    11.最后一步,一定一定 将本地干净的分支 push到远程一个  新建分支上

     

     

     

    12. 好了 干净分支恢复完成,最后,就需要 研发同学将 恢复的commitId节点后的所有开发代码,从 那个污染的分支上 compare  diff一下,把自己的那个时间点之后的所有 开发代码 复制到 这个干净分支上,完成干净代码的恢复 

    =====================================

  • 相关阅读:
    删除字符串前后的空格
    Python中定义“私有”成员变量和成员函数
    linux 线程
    进程虚拟内存模型
    守护进程
    FIFO
    linux 中的 wait 函数和 waitpid 函数
    孤儿进程和僵尸进程
    linux 中的 exec 函数族
    linux中的fork函数
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/14342443.html
Copyright © 2011-2022 走看看