zoukankan      html  css  js  c++  java
  • git revert和reset区别

    1.在github上建立测试项目并克隆到本地

    2.本地中新建两个文本文件

    3.将a.txt commit并push到远程仓库

     执行 git add a.txt, git commit -m "a.txt", git push

     

    4.将b.txt提交到本地仓库,不执行push

     通过gitk命令查看提交历史如下:

    情景:b.txt本来不想提交上去,但是不小心提交上去了,怎么办?

       方法1:git reset head~1

         方法2:指定回退到具体的提交版本ID

      ->使用 git log查看提交历史,如下:

      ->git reset 81375c780e076ed87f1f1d96c88664126aec01cd

      最终结果如下:


     通过gitk查看提交历史

    本地项目变化

      方法3:git revert head,用一个新提交来消除一个历史提交所做的任何修改。

      最终结果如下:

    通过gitk查看提交历史

    本地项目变化

      相信你通过gitk查看提交历史,就会发现revert和reset的不同了,reset是将head往后退而revert执行后head继续前行。

    5.新建的a.txt和b.txt全都push到远程仓库中

       a.txt和b.txt分别提交并push上去,结果如下:

    通过gitk查看提交历史

    远程仓库

      (1).如果执行reset操作

        执行 git reset head~1,结果如下:

      

        然后执行 git pull,结果如下:

      (2).如果执行revert操作

        执行 git revert head, 结果如下:

        然后执行 git pull, 结果如下:

        但是远程仓库中还是有 b.txt这个文件的,通过git status查看结果如下:

        通过git push 将刚才revert回滚修改的提交 push到远程仓库。最后,保持本地和远程的一致。

    6.参考资料

      git reset revert 回退回滚取消提交返回上一版本

      git 撤销commit

  • 相关阅读:
    SpringBoot之集成slf4j日志框架
    Maven项目优势
    Idea操作技巧
    Nginx服务器之负载均衡策略(6种)
    Git操作规范
    Mybatis之Tk
    MyEclipse取消验证Js的两种方法
    文件异步上传,多文件上传插件uploadify
    EasyMock的使用
    jquery 中post 、get的同步问题,从外部获取返回数据
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/5645718.html
Copyright © 2011-2022 走看看