git 版本(commit) 回退 -- 使用git reset 指令
刚刚提交了三个commit, git reflog显示如下:
最后一个commit在文件末尾加了一行:v3,以此类推:
下面,使用git reset --hard commitID来进行commit回退:(应该回滚的时工作区的commit版本吧)
1)回到最后一个commit之前,即回到v2后的版本:
git reset --hard fe0b7d6
( 亦可以使用快捷的方式: git reset --hard HEAD ^ ,^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:
git reset --hard HEAD~100, 个人建议使用~,网上有人说经常遇到^的符号问题。 )
该指令执行后:
虽然回退了,执行git relog之后,v3的commit记录还是在的。然后,可以继续执行git reset --hard commitID,可以回滚到任何一此commit的状态。
2)返回v3的commit:
git reset --hard a018ae3
注意:
我遇到的一个问题:执行git reset --hard commitid退到v2的状态,然后执行git reset --hard commitid退到v1的状态,然后执行git reset --hard commitid退到v3的状态,, 然后,再执行的话,不管执行git reset --hard commitid还是git reset --hard HEAD~100都会出现问题如下问题,原因还未查到。查到之前,还是简单操作比较好,先只用git reset --hard HEAD~100这种指令,然后,只在回到最后一个commit时候,用git reset --hard commitid.
git reset --soft,--hard的区别
https://www.jianshu.com/p/c6927e80a01d
ref:
https://blog.csdn.net/zt1519/article/details/81713748
git 版本(commit) 回退 -- 使用git reset 指令的更多相关文章
- 【Git】3、创建Git版本库、配置Git仓库用户邮箱信息
初识Git 文章目录 初识Git 1.创建Git版本库 认识.git 2.基础配置 2.1.查看配置信息 2.2.配置昵称邮箱信息 2.3.修改配置信息 1.通过命令行 2.通过修改配置文件. 修改全 ...
- Git命令之回退篇 git revert git reset
Git command之回退篇 欲练回退 必先了解:HEAD.index.WorkingCopy HEAD: 当前所在的分支版本顶端的别名,也就是最新的一次commit. git commit 之后与 ...
- Git 中的回退操作:reset 和 revert
Git 中回退有 reset 和 revert,这两个的区别就是是否保留更改记录 假设当前的提交情况是:A <- B <- C <- D <- HEAD,如下图: 当前是 D, ...
- [Practical Git] Format commit history with git log arguments
When running the git log command, we can pass in options as arguments toformat the data shown for ea ...
- git 远程仓库版本的回退以及git reset 几种常用方式记录
由于 github push 了两个比较潦草的commit, 自己很不满意,又不想重新开vpn进行上传,所以找了一下相关的教程. 最后研究了一下,原理为先在本地还原到你想要的commit,然后强制pu ...
- git 版本撤销,回退等
git checkout -- <file> #丢弃工作区的修改, 不要省略 -- ,这是只在工作区(work tree)修改了内容,还没有add 到暂存区,此时想撤销修改. ...
- [Practical Git] Filter commit history with git log arguments
In the last lesson, we learned how to format the git log output; in this lesson we will learn how to ...
- Git学习笔记(2)——版本的回退,和暂存区的理解
本文主要记录了版本的回退,以及工作区,暂存区概念的理解. //开始之前,先回顾上次的内容,修改文件如下,并提交到版本库. Git is a distributed version control sy ...
- Git 版本回退的几种操作方法
1, 结合使用 git reset --hard <commit id> , git reset --hard HEAD^, git reflog , git log 1) 使用 git ...
随机推荐
- 如何通过调优攻破 MySQL 数据库性能瓶颈?
一.前言 MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰.在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优 ...
- SQL Server 跨服务器、跨版本使用复制 (2008、2012)
在两台不同的服务器间实现SQL Server 的发布和订阅,需要一些设置. 测试环境:2008数据库.2012数据库,可实现跨版本发布订阅 本次测试是08的数据库做发布端 ,使用08数据及12数据库均 ...
- python 字符前缀,运算符、换行符、数据类型和变量
补充 *)/ 表示的除法即使是整数,结果也是浮点数 *)python表示的整数是没有大小限制的.而某些语言根据其储存长度是有大小限制的.例如Java对32位整数的范围限制在-2147483648-21 ...
- C#中一行代码实现18位数字时间戳转换为DateTime
场景 存取的时间戳数据为: 636728674347302002 怎样将其转换为DateTime时间. 目前大多数的策略是,转换成string,然后 DateTime dateTimeStart = ...
- 2.3 Scala面向对象编程基础
一.类 1.类的定义 Unit表示什么都不返回 方法体最后一句的值,就是方法的返回值. 2.类成员的可见性 3.方法的定义方式 定义方法的时候加圆括号,调用时可以加圆括号c.getValue()也可以 ...
- jmeter压测学习8-压测带token的接口
前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...
- centos depot_tools安装
https://github.com/cybertk/depot_tools This package contains tools for working with Chromium develop ...
- mac pro下安装安装 SymPy 和 matplotlib报错解决方案
因为自己写python分析时候要用到这两个库,但是mac 上安装不成功.原来是要安装原来装 matplotlib 之前先要安装 freetyp 和 libpng. brew install freet ...
- UiPath:Split(","c)以逗号区分遍历字符串数组
学习中遇到同一用户多种职业的情况,因为所有的数据都是从Excel里面取的,所以只能把所有的职业写在一个单元格里,以逗号区分. 那么就需要先把字符串转为数组,然后遍历数组去添加职位.如图 Split(& ...
- JS onFocus和onBlur
onFocus事件就是当光标落在文本框中时发生的事件. onBlur事件是光标失去焦点时发生的事件. <form action="/chat" method="ge ...