在实际的工作和学习中我们经常的会对文件进行修改,但是或多或少的就会发现由于某些原因修改是错误的这时候就需要对所做的修改进行撤销,更或者某些时候需要对文件进行删除。本节就会告诉大家如何操作。

撤销操作

  撤销命令可以使用 git checkout --<fileName> 意思是把工作区的内容全部撤销我们知道工作区的文件有几种情况:已经放入暂存区的还有没有放入暂存区的,我们分别对其进行说明:

  1. 对于没有放入暂存区的文件,使用 git checkout 进行撤销修改就会回到和版本库一模一样的状态。

  2. 如果该文件已经放入暂存区,并且做了修改,使用 git checkout 会撤销修改就回到添加到暂存区后的状态。

  说白了我们的目的就是让这个文件回到最近一次 git commit 或者 git add 的状态。

删除文件

  删除文件可以使用 git rm 命令。例如我们想删除 test.txt 文件

rm test.txt

  在这个时候 git 知道你做了删除的操作,此时工作区和版本库是不一致的,使用 git status 命令就会知道哪些文件已经被删除了

$ git status
...
no changes added to commit (use "git add" and/or "git commit -a")

  现在我们有两种选择:1. 的确要删除该文件,这时候使用 git rm 命令将其删除,并且使用 git commit 进行提交。2. 删错文件了,此时因为版本库中还是有该文件的。所以我们可以使用 git checkout --<fileName> 进行还原。

  这里我们就知道 git checkout 就是使用版本库中的文件代替工作区中的文件,无论工作区的文件是做了修改还是删除都是使用 git checkout 进行还原。

  对于 git rm 命令是用来删除一个文件。如果一个文件已经在版本库中存在了,那么你就不用担心误删了,因为我们可以对其进行还原的,但是需要注意的是你只能恢复到最新的版本,你会丢失最近一次提交后修改的内容呦!

git 学习之撤销和删除的更多相关文章

  1. git学习03 - 撤销修改&删除文件

    撤销修改:git checkout -- filename :将工作区文件回到最近一次add 或者 commit的状态 撤销修改分为三种情况: 1.未提交至暂存区 使用git checkout -- ...

  2. mzy git学习,撤销修改(二)

    git checkout – file: 撤销我们对工作区的修改(没有提交到暂存区) 当我们在工作区修改了之后,并没有提交到暂存区,如果要撤销对 某个文件的修改的话,就使用 git checkout ...

  3. Git学习总结四(删除)

    一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了: $ rm test.txt 这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻 ...

  4. git 学习笔记 ---撤销修改

    自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version co ...

  5. Git学习(二)(2015年11月18日)(2016年1月29日)

    2015年11月18日Git学习: .Shell 删除文件夹及其所有文件 rd/s/q 文件目录 ---------------当前为先创建本地Git库后与网上Git服务器关联------------ ...

  6. git 学习(3)文件删除恢复

    git学习(3) 撤销编辑 如果我们在编辑版本a的时候,如果在没有add之前,发现需要重新编辑版本a怎么办呢,可以通过git reset --hard comm_id, commit_id是版本a的提 ...

  7. 【Git】Git 本地的撤销修改和删除操作

    一:撤销操作 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复 ...

  8. git学习笔记10-新开发的功能不想要了-强行删除分支

    添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支. 现在,你终于接 ...

  9. git学习 删除远程分支

    2种方法删除远端分支: git branch -r -d origin/branch-name    // -r:  远端:    -d:删除 git push origin :branch-name ...

随机推荐

  1. 快速排序(Quicksort)的Javascript实现(转载)

    日本程序员norahiko,写了一个排序算法的动画演示,非常有趣. 这个周末,我就用它当做教材,好好学习了一下各种排序算法. 排序算法(Sorting algorithm)是计算机科学最古老.最基本的 ...

  2. DRBD+Heartbeat实现自动切换

    1>HeartBeat介绍 Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项 ...

  3. EBS R12 更改SYSADMIN密码

    SQL> select * from v$version; BANNER------------------------------------------------------------- ...

  4. Android-自定义控件-继承View与ViewGroup的初步理解

    继承View需要走的流程是: 1.构造实例化, public ChildView(Context context, @Nullable AttributeSet attrs) 2.测量自身的高和宽on ...

  5. ASP.NET Core2基于RabbitMQ对Web前端实现推送功能

    在我们很多的Web应用中会遇到需要从后端将指定的数据或消息实时推送到前端,通常的做法是前端写个脚本定时到后端获取,或者借助WebSocket技术实现前后端实时通讯.因定时刷新的方法弊端很多(已不再采用 ...

  6. 如何在powerdesign15.1中使用自增列

    点击要设置为自增列的列 右键选择properties(或者按下ALT+enter) 点选红框,再点击Microsoft选项卡, 输入开始值和自增值即可 来自为知笔记(Wiz)

  7. airport 抓包

    链接airport命令: ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources ...

  8. 获取outlook联系人寻呼字段

    这称不上一篇技术文. 这边记录解决一个问题的过程和感受.这种感觉每个搞IT的人或多或少都感受过,是程序人独有的快乐之一.只是大部分人没有将这种感觉记录下来.但是当你记录时,这种感觉也早已消失. 需求: ...

  9. C# 依赖注入 & MEF

    之前面试有问道依赖注入,因为一直是做客户端的发开发,没有接触这个,后边工作接触到了MEF,顺便熟悉一下依赖注入 详细的概念解释就不讲了,网上一大把,个人觉着依赖注入本质是为了解耦,方便扩展 依赖注入的 ...

  10. NETCore调用AD域验证

    一.添加引用 System.DirectoryServices System.DirectoryServices.AccountManagement 二.验证代码 声明域 string domainN ...