Git实现克隆历史的某个版本

目录
  • 步骤
    • 查看历史记录
    • 选择要克隆的历史版本,克隆对应的历史版本数据
    • 最后在恢复到最新数据
  • 演示
    • Git 最新版本数据
    • 克隆历史版本后
    • 最终恢复到最新版本数据
    • 命令演示

步骤

查看历史记录

# 查看历史记录git log -3

实例

Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-Learn/config-center ((af05c43...))
$ git log -3
commit af05c43b5c6b14abbe9c6267811e4fb0a2d2b372 (HEAD, origin/master, origin/HEAD, master)
Author: Simba1949 <simba1949@outlook.com>
Date:   Sun Jul 28 17:27:54 2019 +0800
    springcloud多环境配置文件
commit d124e2b35da7a9b51368e5f2d156b1128781c517
Author: Simba1949 <simba1949@outlook.com>
Date:   Sun Jul 28 16:39:14 2019 +0800
    SpringCloudConfig 多环境配置文件
commit acb80687cd82151f1beba3518c6a5327fad91c9a
Author: Simba1949 <simba1949@outlook.com>
Date:   Sun Jul 28 11:40:10 2019 +0800
    SpringCloud 学习笔记之分布式配置中心Config的学习,上传配置文件

选择要克隆的历史版本,克隆对应的历史版本数据

# 选择需要克隆的历史版本
git checkout acb80687cd82151f1beba3518c6a5327fad91c9a

实例

Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-Learn/config-center ((af05c43...))
$ git checkout acb80687cd82151f1beba3518c6a5327fad91c9a
Previous HEAD position was af05c43 springcloud多环境配置文件
HEAD is now at acb8068 SpringCloud 学习笔记之分布式配置中心Config的学习,上传配置文件

最后在恢复到最新数据

# 恢复最新数据
git pull origin master

实例

Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-Learn/config-center ((acb8068...))
$ git pull origin master
From https://github.com/simba1949/config-center
 * branch            master     -> FETCH_HEAD
Updating acb8068..af05c43
Fast-forward
 .../default/spring-cloud-config-multi-client.properties                  | 1 +
 .../dev/spring-cloud-config-multi-client-dev.properties                  | 1 +
 .../prod/spring-cloud-config-multi-client-prod.properties                | 1 +
 .../spring-cloud-config-multi-client-dev.properties                      | 1 +
 .../spring-cloud-config-multi-client-prod.properties                     | 1 +
 .../spring-cloud-config-multi-client-test.properties                     | 1 +
 .../test/spring-cloud-config-multi-client-test.properties                | 1 +
 7 files changed, 7 insertions(+)
 create mode 100644 spring-cloud-config-multi-client/default/spring-cloud-config-multi-client.properties
 create mode 100644 spring-cloud-config-multi-client/dev/spring-cloud-config-multi-client-dev.properties
 create mode 100644 spring-cloud-config-multi-client/prod/spring-cloud-config-multi-client-prod.properties
 create mode 100644 spring-cloud-config-multi-client/spring-cloud-config-multi-client-dev.properties
 create mode 100644 spring-cloud-config-multi-client/spring-cloud-config-multi-client-prod.properties
 create mode 100644 spring-cloud-config-multi-client/spring-cloud-config-multi-client-test.properties
 create mode 100644 spring-cloud-config-multi-client/test/spring-cloud-config-multi-client-test.properties
Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-Learn/config-center ((af05c43...))

演示

Git 最新版本数据

克隆历史版本后

最终恢复到最新版本数据

命令演示

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2022-09-21

详解git的基本使用方法

什么是git? git是目前世界上最先进的分布式版本控制系统. git与SVN的最主要区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候用的都是自己的电脑,所以开始工作之前需要从中央服务器那里获取最新的版本,然后开始工作,工作完后,需要把自己所做的工作推送到中央服务器.集中式版本控制系统必须要联网才能工作,如果在局域网中,有足够的宽带,运行速度够快,而在互联网环境下,网速慢通常会导致服务难以进行. git是分布式版本控制系统,没有中央服务器,每个人的电脑是一个完整的版

git使用教程(最详细、最傻瓜)

1.git 简介 1.1 产生历史 git是目前世界上最先进的分布式版本控制系统. Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,**在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么L

Git恢复之前版本的两种方法reset、revert(图文详解)

一.问题描述 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset).反做(revert). 二.背景知识 git的版本管理,及HEAD的理解 使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支.如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支.有一个HEAD指针指向当前分支(只有一个分支的情况下

详解Git建立本地仓库的两种方法

Git是一种分布式版本控制系统,通常这类系统都可以与若干远端代码进行交互.Git项目具有三个主要部分:工作区,暂存目录,暂存区,本地目录: 安装完Git后,要做的第一件事,就是设置用户名和邮件地址.每个Git提交都使用此信息,并且将它永久地烘焙到您开始创建的提交中: $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com 之后我们可以建立一个本地仓库.

Java 两种延时thread和timer详解及实例代码

Java 两种延时thread和timer详解及实例代码 在Java中有时候需要使程序暂停一点时间,称为延时.普通延时用Thread.sleep(int)方法,这很简单.它将当前线程挂起指定的毫秒数.如 try { Thread.currentThread().sleep(1000);//毫秒 } catch(Exception e){} 在这里需要解释一下线程沉睡的时间.sleep()方法并不能够让程序"严格"的沉睡指定的时间.例如当使用5000作为sleep()方法的参数时,线 程

Android 两种启动模式的实例详解

Android 两种启动模式的实例详解 Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT Activity的两种启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT 1. 如果已经启动了四个Activity:A,B,C和D.在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在startActivity(intent)里

对Python中创建进程的两种方式以及进程池详解

在Python中创建进程有两种方式,第一种是: from multiprocessing import Process import time def test(): while True: print('---test---') time.sleep(1) if __name__ == '__main__': p=Process(target=test) p.start() while True: print('---main---') time.sleep(1) 上面这段代码是在window

9种方法优化jQuery代码详解

用对选择器 在jQuery中,可以用多种选择器,选择同一个网页元素.每种选择器的性能是不一样的,应该了解它们的性能差异 1.最快的选择器:id选择器和元素标签选择器 举例来说,下面的语句性能最佳: $('#id') $('form') $('input') 遇到这些选择器的时候,jQuery内部会自动调用浏览器的原生方法(比如getElementById()),所以它们的执行速度快. 2.较慢的选择器:class选择器 $('.className')的性能,取决于不同的浏览器.Firefox.S

Spring依赖注入的两种方式(根据实例详解)

1,Set注入    2,构造注入 Set方法注入: 原理:通过类的setter方法完成依赖关系的设置 name属性的取值依setter方法名而定,要求这个类里面这个对应的属性必须有setter方法. Set方法注入时spring中配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans&qu

IOS 中两种单例模式的写法实例详解

iOS的单例模式有两种官方写法,如下: (1)不使用GCD #import "ServiceManager.h" static ServiceManager *defaultManager; @implementation ServiceManager +(ServiceManager *)defaultManager{ if(!defaultManager) defaultManager=[[self allocWithZone:NULL] init]; return default

java实现图的邻接表存储结构的两种方式及实例应用详解

前言 本篇来谈一谈图的邻接表实现的两种方式,首先我们明确一点"学会图的邻接表实现的关键点在于":你所建立的图的邻接表的对象是什么! 首先我们看一下<算法导论>中关于图的邻接表的定义: 图G=(V,E)的邻接表表示有一个包含 |V| 个列表的数组Adj所组成,其中每个列表对应于V中的一个顶点,对于每一个u∈V,邻接表Adj[u]包含所有满足条件(u,v)∈E的顶点v,亦即,Adj[u]包含图G中所有和顶点u相邻的顶点.(或者他也可能指向这些顶点的指针),每个邻接表中的顶点一般

webstorm中配置Eslint的两种方式及差异比较详解

写在前面 这两种方式的配置基本相同,都是配一下node地址,Eslint执行文件的地址,Eslint的配置文件(就是.eslintrc)等,而且网上很方便就可以搜索到,就不多说了. 之所以要比较一下两者的差异,就是因为对于没有配置过的同学来说,看了诸如"怎么在webstorm下配置Eslint"的问题下面的回答,既有说用方式1,又有说方式2的,然后这两种方式配置项还差不多(都是在webstorm的一个setting页面里面设置三四个项目,然后勾上enable复选框),就容易混淆. 再加