git 回退到某个commit_it lesson2 版本回退

a0289f8942e8230563171c164505a0fb.png

回顾上次的知识:

1,首先git init 初始化文件的状态,使用git管理文件。
2,git add xxx 告诉git把xxx文件添加到仓库
3,git commit -m ‘xxxx’告诉git把文件提交到仓库 并对提交的内容作解释(‘xxxx’)4,git status 可以时实的查看当前文件的状态,比如是否修改?
5,假如修改了,具体修改的什么内容? git diff xxx 查看具体哪里被修改

然后日常开发,我们就会重复多次的git add 和 git commit这两个git命令。commit就类似于保存一个“快照”。commit的每次记录也都会被git给记录下来,方便日后翻阅。

本次新知识:

从开始到现在我们已经更改了几次readme.txt文件,但是我们像看看到底每次都修改了什么?

git log 命令可以帮助我们查看commit过的历史记录

$ git log
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:06:15 2018 +0800add distributed under the GPL     每次修改你-m 后面添加的信息commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:03:36 2018 +0800add distributed   每次修改你-m 后面添加的信息commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 20:59:18 2018 +0800wrote a readme file  每次修改你-m 后面添加的信息

git log命令显示从最近到最远的提交日志,我们可以看到3次提交。

接下来是最重要的时光穿梭机。我们把readme.txt回退到以前的版本。

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

回退到以前的版本需要使用 git reset --hard 命令

$ git reset --hard HEAD^
HEAD is now at b216c75 append distributed

此时,再次重新打开readme.txt文件就已经还原上次的版本了。

此时我们复习下git log命令,查看下现在的版本日志

$ git log
commit b216c75d2f7bd7cff68c0cd3437790c442931b68 (HEAD -> master)
Author: kuiningChen <13288651469@163.com>
Date:   Tue Jun 5 22:14:21 2018 +0800append distributedcommit 22aaac183e488160e2d53082f4420a6393de2f0f
Author: kuiningChen <13288651469@163.com>
Date:   Tue Jun 5 21:36:34 2018 +0800wrote a readme file

我们发现竟然只有两次修改了(原本三次修改的),最新的版本(也就是第三次的版本)已经看不到了!好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?

办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个append GPLcommit id1094adb...,于是就可以指定回到未来的某个版本:

$ git reset --hard 1094a
HEAD is now at add distributed under the GPL

版本号没必要写全,前几位就可以了,Git会自动去找。

68d0c90aea0745d33d2d85af5d10ce61.png

小结:

git log 查看版本提交的历史记录情况

git log可以查看提交历史,以便确定要回退到哪个版本

4f5b50acc0d3c04dbab5ff07cb93d733.png

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id commit_id就是上面黄色的部分。

使用git reflog 用来记录你的每一次命令

git reflog查看命令历史,以便确定要回到未来的哪个版本

50257c9055d8f0708c633b72a055a96e.png

看到(上图)黄色部分的commit_id然后可以使用git reset --hard 命令回到想要过去的(未来)版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据处理模块pandas_13. Python|模块总结:Pandas(数据处理)|【老W笔记】...

一、基本操作0. 导入模块import pandas as pd1. 新建DataFrame下面的例子中&#xff0c;我们新建一个有3条记录2列属性的表格。3 条记录分别是Tom&#xff0c;Bob&#xff0c;Alice的个人信息&#xff0c;2列属性分别是name和age。新建属性列的语法形如df[XX] List&#xff0c;…

visual studio 设计器不显示_与城共生:南京朝天宫“参与性”城市设计

本课题致力于探索和理解目前中国城市迅速发展的过程中&#xff0c;老旧社区如何与城市共生共进。通过对南京老旧社区的充分调查和研究&#xff0c;选取了朝天宫古玩市场附近的街巷民居和鼓楼工人新村作为设计地块。社会结构的变迁以及城市空间形态的变化都对老旧社区正在进行冲…

python项目部署nginx_【python】Django web项目部署(Nginx+uwsgi)

一、安装uwsgi通过pip安装uwsgi。测试uwsgi&#xff0c;创建test.py文件&#xff1a;通过uwsgi运行该文件。常用选项&#xff1a;http&#xff1a; 协议类型和端口号processes &#xff1a; 开启的进程数量workers&#xff1a; 开启的进程数量&#xff0c;等同于processes(官网…

mysql操作xml字段_SQL XML 字段操作

DECLARE myDoc xmlSET myDoc --SELECT myDoc-- 插入item的第1个子节点&#xff0c;此时不需要指定as first或as lastSET myDoc.modify(Ninsert 张洪举into (/root/item)[1])SELECT myDoc-- 插入item的第2个子节点&#xff0c;as first指定插入到同级子节点的前面SET myDoc.modi…

python可以做二维码吗_Python制作二维码,并且可以添加logo

import readlineimport qrcodefrom PIL import Imageimport osdef Create_Qrcode(strings,path,logo""):qr qrcode.QRCode(version2,error_correctionqrcode.constants.ERROR_CORRECT_L,box_size6,border1,)with open(‘test.txt‘,‘r‘) as fr:for lines in fr.re…

mysql error code 1093_MySQL更新时ErrorCode:1093和ErrorCode:1175的解决办法

Error Code: 1093. You canError Code: 1093. You cant specify target table ws_product for update in FROM clause这个是我们在使用update或者delete语句时&#xff0c;在where条件里面加入的子查询导致的。例如如下的update语句&#xff1a;update table set type static …

python面向对象学习_Python 初识面向对象#学习猿地

> 面向对象编程——Object Oriented Programming&#xff0c;简称OOP&#xff0c;是一种**以对象为中心**的程序设计思想。>> 面向过程编程——Procedure Oriented Programming&#xff0c;简称POP&#xff0c;是一种**以过程为中心**的程序设计思想。## 理解面向过程…

python如何使用多态_在python 3中,如何将多态应用于类

介绍多态性是为不同的基础形式(例如&#xff0c;数据类型或类)利用同一接口的能力。这允许函数在不同时间使用不同类型的实体。对于Python中的面向对象编程&#xff0c;这意味着可以用与属于特定类的特定对象相同的方式来使用它&#xff0c;就好像它是属于不同类的不同对象一样…

python输出数字方阵_在python里输出数字方阵

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

python tkinter 弹窗_tkinter主窗口和子窗口同时弹出该怎么办?

参考代码注释import osfrom tkinter import filedialogimport tkinter as tkfrom tkinter import Buttonclass ReName():def __init__(self):self.n 0def shouldIgnore(self, path: str) -> bool:忽略以下路径:1. 文件夹。2. macOS 隐藏文件a. 文件名以 . 开头&#xff0c;…

安装mysql8.019命令符_MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干目录下载完成后解压解压完是这个样子配置初始化的my.ini文件的文件解压后的目录并没有的my.ini文件&#xff0c;没关系可以自行创建在安装根目录下添加的my.ini(新建文本文件&#xff0c;将文件类型改为的.ini)&#xff0c;写入基本配置&#xff1a;[mysqld]# …

python tcp服务器_python实现TCP服务器端与客户端的方法详解

本文实例讲述了python实现TCP服务器端与客户端的方法。分享给大家供大家参考。具体如下&#xff1a;TCP服务器程序(tsTserv.py)&#xff1a;from socket import *from time import ctimeHOST PORT 21567BUFSIZ 1024ADDR (HOST, PORT)tcpSerSock socket(AF_INET, SOCK_STRE…

入Java_初入Java的方法

Java的方法类似于其他语言如C中的函数&#xff0c;比如我们第一个Java程序 输出Hello,world&#xff01;中用到一个方法System.out.printfln()&#xff1b;这里的printfln()就是一个方法&#xff0c;System是系统类&#xff0c;out是对象。1.什么是方法&#xff1f;方法是语句…

java method_JAVA Method的解析

java.lang.reflect.MethodMethodpublic final class Method extends Executable数据的层级结构Paste_Image.pngMethod中的方法boolean [equals].将此方法与指定的对象进行比较T extends [Annotation]T [getAnnotation]如果存在注释&#xff0c;则返回指定类型的注释否则返回为n…

java中this_多学习才能多赚钱之:java中this什么用

java中this什么用1、this调用当前属性&#xff1a;其主要作用是当需要给类中的数据进行初始化时&#xff0c;可以通过this来进行赋值&#xff0c;而不用随便定义一个变量来进行赋值&#xff0c;更有利于代码的阅读与理解(推荐教程&#xff1a;java教程)class Book{//定义书的类…

java api 英文_教你查阅Java API 英文文档(JDK 11)

然后找到“Specifications”并点击 API Documentation比如我们在别人的源码里看到了方法[也叫函数]&#xff1a; Scanner input new Scanner(System.in);所以搜索一下右上角 Scanner&#xff0c;对比我们看到的源码里import&#xff0c;发现是java.util包里的&#xff0c;所以…

jedis使用_Redis --Java客户端 Jedis

Redis --Java客户端 Jedis 博客说明 文章所涉及的资料来自互联网整理和个人总结&#xff0c;意在于个人学习和经验汇总&#xff0c;如有什么地方侵权&#xff0c;请联系本人删除&#xff0c;谢谢&#xff01; 简介 Jedis: 一款java操作redis数据库的工具. 菜鸟教程文档地址 使用…

java jolt tuxedo_java使用jolt调用tuxedo服务

使用包jolt-1.0import bea.jolt.JoltSession;import bea.jolt.JoltSessionAttributes;import bea.jolt.SessionException;简单示例JoltSession jsession;JoltSessionAttributes sattr;JoltRemoteService joltRemoteService;JoltTransaction trans;String userName "A…

找出最具竞争力的子序列_力扣300——最长上升子序列

这道题主要涉及动态规划&#xff0c;优化时可以考虑贪心算法和二分查找。原题给定一个无序的整数数组&#xff0c;找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101]&#xff0c;它的长度是 4。说明:可能会有多种最…

java 跨站点脚本编制_AppScan跨站点脚本编制修复

查了下百度&#xff0c;跨站点脚本编制其实也就是在url后加入参数和js脚本实现一些坏坏的事情&#xff0c;至少appscan就是这么干的。那么主要的工作就是把恶意代码给过滤了&#xff0c;作为javaweb开发&#xff0c;明显第一步想到的是过滤器。网上很多都是将request对象 传入H…