git reset 和revert

git 撤销命令  包括对add、commit、push、pull的撤销

git分为工作区(代码直接修改)、暂存区(add)、本地仓库(commit)、远程仓库(push)

reset分为  soft、mixed、hard三种

其中mixed为默认,即 git reset 就表示为git reset -mixed

一、撤销add操作

git reset HEAD <file> 如果不加指定file名 则默认撤销所有add的文件

暂时在网上只查看到这一种命令   默认为mixed   文件重新从暂缓区回到工作区

二、撤销commit操作

git reset -soft HEAD^  注:HEAD^ 表示HEAD^1 即上一个版本,HEAD^2表示上上个版本,一次类推

   从本地仓库撤回,代码保存至缓存区,

git reset -HEAD^     从本地仓库撤回,代码保存至工作区

git reset -hard HEAD^    从本地仓库撤回,并不在工作区和暂缓区保留

三、撤回pull操作

git reset --hard HEAD^1 或者 跟#SHA值 或者 HEAD@{n}

四、撤回push操作

git log  或者git reflog

git reset --soft #SHA 或者HEAD@{n}  更改的代码还是保留在了缓存区

现在回退了,但是还得提交回退,如果用 git push origin step5/test 会提示本地的版本落后于远端的版本

因为已经提交推送了最新的一般代码,本地仓库肯定与远程仓库肯定有差别,

需要force   git push origin master --force

这样就回退成功了,但是有人会发现,另一个同样的工程pull拉取最新代码的时候,不能拉取最新代码。这是因为有问题的工程的版本和未回退前的版本是一样的,现在回退了也就是版本降低了,pull是不可能从高版本降到低版本的。如果是这样,可以用 git branch -D step5/test 来删除本地分支,或是删除文件夹,重新下载。

当然要解决这个问题,还可以用 git revert的作用通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本,这样可以保留要回退的版本,如果有其它人 pull 工程就不会取不到最新代码了。
关键是有时候分支受到保护禁止force push

revert和reset的区别在于

reset是向后退,当后退多个版本时,中间的几个版本也会被舍弃,revert是向前进,但会对之前需要舍弃的版本重做,但仍保留舍弃版本后的版本(因为在你向远程push之后,还会有其他人push)

git revert --no-commit f7742cd..551c408
git commit -a -m 'This reverts commit 7e345c9 and 551c408'

使用 git revert <commit> 可以撤销指定的提交, 要撤销一串提交可以用 <commit1>..<commit2> 语法。 注意这是一个前开后闭区间,即不包括 commit1,但包括 commit2。 注意 revert 命令会对每个撤销的 commit 进行一次提交,--no-commit 是为了之后一起手动提交。

这里写图片描述

这里写图片描述

 

参考:https://www.jianshu.com/p/5e7ee87241e4

https://blog.csdn.net/yxlshk/article/details/79944535

https://www.jianshu.com/p/14f9ef2f967d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值