• 8.Git撤销修改


    有一个文件内容如下:
        $ cat README.md
        the first ...
        the second ...
        the third ...
    

    - 文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态.

    1.删除最后一行内容:`the third ...`
    	$ vi README.md
    	
    	$ cat README.md
        the first ...
        the second ...
    
    2.执行命令`git status`
    $ git status
    On branch dev
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
            modified:   README.md
    no changes added to commit (use "git add" and/or "git commit -a")
    
    3.通过上面结果,可以发现,Git会告诉我们,git checkout -- file可以丢弃工作区的修改
    	$ git checkout -- README.md
    
    4.执行命令`README.md`查看恢复后文件内容
        $ cat README.md
        the first ...
        the second ...
        the third ...
    

    - 文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态.

    1.删除最后一行内容:`the third ...`
    	$ vi README.md
    	
    	$ cat README.md
        the first ...
        the second ...
    
    2.执行命令`git add`添加到缓存区
    	$ git add README.md
    
    3.执行命令`git status`
        $ git status
        On branch dev
        Changes to be committed:
          (use "git reset HEAD <file>..." to unstage)
                modified:   README.md
    
    4.执行命令`git reset HEAD README.md`
        $ git reset HEAD README.md
        Unstaged changes after reset:
        M       README.md
    
    5.执行命令`git status`
    $ git status
    On branch dev
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
            modified:   README.md
    no changes added to commit (use "git add" and/or "git commit -a")
    
    6.通过上面结果,可以发现,Git会告诉我们,git checkout -- file可以丢弃工作区的修改
    	$ git checkout -- README.md
    
    7.执行命令`cat README.md`查看恢复后文件内容
        $ cat README.md
        the first ...
        the second ...
        the third ...
    
    总结:
    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令.
    
  • 相关阅读:
    lvs实现故障转移(backup)
    shell计算
    CEGUI 聊天对话框
    SetRenderState 设置渲染状态【转】
    MFC 弹出对话框
    DrawIndexedPrimitive函数的详细解释【转】
    IDirect3DDevice9::Clear 【转】
    manifest 文件错误
    D3DXMatrixLookAtLH 【转】
    D3D中的网格(Mesh)
  • 原文地址:https://www.cnblogs.com/apollo1616/p/10440130.html
Copyright © 2020-2023  润新知