Git使用教程-6.撤销修改

撤销修改

Git 比其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,而非文件。

您会问,什么是修改? 比如您新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

撤消对文件的修改

  1. 我们先在README.md文件后面添加一些内容,然后使用git status命令查看当前状态

    23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
    $ cat README.md
    Hello Git!
    Git is free software.
    Git is a distributed version control system.
    very good!
     
    23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   README.md
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    
01.png
  1. 假如,这时候你发现改错了,并且不知道原来的内容是什么了,那么我们要怎么恢复文件内容呢?这时候我们可以丢弃对工作区文件的修改。

    23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
    $ git restore README.md
    
     23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
     $ git status
     On branch master
     nothing to commit, working tree clean
    
02.png

取消暂存的文件

  1. 假设现在你修改了一段代码并且git add到暂存区,然后你发现这段代码有bug。

    23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
    $ cat README.md
    Hello Git!
    Git is free software.
    Git is a distributed version control system.
    This is a bug.
    
    23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
    $ git add README.md
    
    
  2. 庆幸的是,在 commit 之前,您发现了这个问题。用 git status 查看一下,修改只是添加到了暂存区,还没有提交:

    23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
    $ git status
    On branch master
    Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
            modified:   README.md
    

    Git告诉我们,用命令git restore --staged <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:

    03.png

特别说明,旧版本的git使用的是git reset HEAD <file>命令来把暂存区的修改撤销掉(unstage).git reset还可用于版本回退,新版本使用git restore可以把版本回退区分开来。

  1. 撤销暂存区的修改后,然后使用git status命令查看当前状态。

     23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
     $ git restore --staged README.md
    
     23696@DESKTOP-GKRBCVI MINGW64 ~/Desktop/MyProject (master)
     $ git status
     On branch master
     Changes not staged for commit:
       (use "git add <file>..." to update what will be committed)
       (use "git restore <file>..." to discard changes in working directory)
             modified:   README.md
    
     no changes added to commit (use "git add" and/or "git commit -a")
    

    现在只是工作区有修改,如果我们不想保留修改了,继续使用git restore丢弃修改即可。

    04.png

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容

  • Git工具 选择修订版本 Git能够以多种方式来指定单个提交、一组提交或者是一定范围内的提交。 单个修订版本 可以...
    squarejohn_5dc8阅读 326评论 0 1
  • Git基础 获取Git仓库的两种方式 将尚未进行版本控制的本地目录转换为Git仓库 从其他服务器==克隆==一个已...
    squarejohn_5dc8阅读 306评论 0 1
  • 本教程为小甲鱼《极客Python之Git实用教程》课程笔记,大部分为原课程讲义,其中穿插了自己实战过程中遇到的一些...
    spectre_hola阅读 168,721评论 13 84
  • 前言: Git作为分布式版本控制系统,是我们工作和开源代码平台项目管理最火的工具之一,基本上是每个入职的同学都要熟...
    Felix_lin阅读 797评论 0 4
  • 唉~我以为休息几天就不会痛了,看来我还是太天真了,实在是闲不住了,今天重新开始写笔记吧,读者们也注意身体,不要久坐...
    蜘蛛的梦呓阅读 470评论 0 0