zoukankan      html  css  js  c++  java
  • 【Git】03 撤销 & 版本回退

    回退分为三种情况,每种情况对应了我们文件的存储区域

    工作区
      |
    暂存区
      |
    版本区(当前分支)

    1、文件可能存放在工作区,没有被Git追踪【红色标记状态】

    2、文件可能已经添加到暂存区,没有被Git提交到版本分支中【绿色状态】

    3、文件可能已经在版本分支中

    1、在工作区的撤销

    首先查看Git当前状态:

    对我们工作区的文件进行内容更改:

    vim text.txt
    A new content insert this file...

    再次查看,很显然的,更改后的文件,Git就会标记为未追踪的文件

    如果要撤销回到最初的样子【这是撤销命令】

    git checkout 文件名称

    可以查看文件的状态:

    之前添加的内容已经没有了,Git仓库状态显示未没有需要提交的,工作树干净

    2、在暂存区中的撤销

    现在重新添加内容,并且提交到暂存区中:

    文件添加进暂存区:

    对暂存区的文件撤销,即把文件从暂存区拉回到工作区:

    git reset HEAD -- 文件名称

    如果撤销所有暂存区的文件,可以:

    git reset HEAD -- .

    或者直接删除暂存区中的文件:

    git rm --cached 文件名称

    3、在版本分支中的版本回退:

    首先把text.txt文件进行提交,每一次提交代表了一个版本存储在版本分支中:

    每一个版本都具有独一无二的版本序列号,例如下图的黄色字符串

    SVN是一个服务器集中式的版本控制系统,所有的版本控制统一在SVN中执行

    但是Git是一个分布式的版本控制系统,每一个人都有独立的本地仓库

    版本不会统一在SVN中,每一个开发者的仓库中的版本号就有可能会一样,这样把版本提交到统一的仓库中就会发生问题

    版本冲突,所以为了解决这个问题,Git使用了这种奇特的序列号作为版本号,以防止版本冲突

    例如现在最新的版本是第三次提交,而我们希望回退到第二版本或者更早的。。。

    首先是回退到上一个版本

    这里一共三个版本,最新版本就是第三次提交

    执行这个命令以后可以看到,当前的版本到了第二次提交了

    git reset --hard HEAD^

    如果要回退临近的几个版本,^表示上一个版本,多个^就表示之前的第n个

    git reset --hard HEAD^^^^ ...

    指令的意思就很明确了,从头开始回退到第N个版本

    但是如果我们希望回退到指定的版本,可以声明版本号来回退:

    git reset --hard 版本号

  • 相关阅读:
    常用正则
    css换行与不换
    数组Array.prototype方法的使用
    你真的知道css三种存在样式(外联样式、内部样式、内联样式)的区别吗?
    js中批量处理样式——cssText的使用
    CSS的定位属性实现text-shadow属性的文本下产生阴影效果
    深入js的面向对象学习篇(继承篇)——温故知新(三)
    深入js的面向对象学习篇(封装是一门技术和艺术)——温故知新(二)
    深入js的面向对象学习篇——温故知新(一)
    【转链接】Handlebars模板引擎以及浅谈模板引擎的实现原理
  • 原文地址:https://www.cnblogs.com/mindzone/p/13500427.html
Copyright © 2011-2022 走看看