博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git revert和reset区别
阅读量:6506 次
发布时间:2019-06-24

本文共 834 字,大约阅读时间需要 2 分钟。

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.参考资料

  

  

转载地址:http://gwzfo.baihongyu.com/

你可能感兴趣的文章
Jsp内置对象及EL表达式的使用
查看>>
简单MVC+EF框架搭建
查看>>
程序分text, data (initialized), bss, stack, heap几个段
查看>>
《Java高级程序设计》第二次作业
查看>>
SQL-25 获取员工其当前的薪水比其manager当前薪水还高的相关信息
查看>>
挂断电话demo
查看>>
【三维偏序】【分块】bzoj3262 陌上花开
查看>>
线程安全与线程不安全,阻塞与非阻塞
查看>>
LaPlayer(1)------Service浅析
查看>>
Optional与Mybatis能否一起
查看>>
javascript-window对象的方法和属性文档大全
查看>>
仿QQ大战—服务器的搭建(ServerSocket)
查看>>
下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题
查看>>
IIS 6.0/7.0/7.5、Nginx、Apache 等Web Service解析漏洞总结
查看>>
Django 模板之组件、静态文件导入
查看>>
DVWA SQL Injection LOW
查看>>
mysql only_full_group_by
查看>>
Dede 查询附加表
查看>>
如何优雅的拔盘?
查看>>
虚拟机网络设置
查看>>