美文网首页
Git使用教程-6.撤销修改

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

作者: 小杨同学97 | 来源:发表于2021-09-22 11:40 被阅读0次

撤销修改

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

相关文章

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

    撤销修改 Git 比其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,而非文件。 您会问,什么是修改?...

  • 撤销修改

    撤销修改, 是便于出现文件修改错误后,撤销当前修改。使用git checkout 撤销工作区的修改;...

  • git 命令

    删除分支命令git分支教程git-flow说明 Git撤销git commit 但是未git push的修改 找到...

  • git撤销修改的几种情况

    1:撤销本地的修改 可使用git checkout -- filename git reset --hard 2:...

  • 1223

    git 撤销和删除 撤销工作区的修改:撤销某个文件的工作区修改:git checkout [--] filepat...

  • Git版本回退

    git 撤销commit 撤销修改http://www.trinea.cn/dev-tools/git-skill/

  • git各场景下的撤销

    1、撤销工作区的修改(未执行 git add .) git checkout 文件或目录 2、撤销暂存区的修改(已...

  • 开发技巧

    git 使用 本地分支提交到远程分支 合并其他分支的内容某个分支 暂存修改 还原修改内容(即撤销所有修改) 修改....

  • git 相关

    目录 git SSH配置 git 分支名修改 git 放弃本地修改 强制拉取更新 git 撤销commit git...

  • Git 半小时入门 <第二章>

    1.新项目如何使用 git ? 2.已有项目如何使用 git 管理代码? 3. 如何回退版本? 4. 如何撤销修改...

网友评论

      本文标题:Git使用教程-6.撤销修改

      本文链接:https://www.haomeiwen.com/subject/bgwwgltx.html