git status 查看当前创库情况

liuzhipeng@exdroid43:~/pad/pad-test$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。 尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/AuTutuTest.java
修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/AuTutuVideoTest.java
修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/LinpackTest.java
修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/Mark3DTest.java
修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/MobileXPRTTest.java
修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/UiAssistant.java
修改: PadTest2./PadAutoTest/UiAutomator/pad/src/androidTest/java/com/softwinner/performance/benchmark/mark3d/VellamoTest.java
修改: PadTest2./testcase/AI030002-performance-3DMark.py

下面来解析git checkout的意思: git checkout --readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;(上一次的git commit 后,修改readme.txt 但没有执行git add,回到上一次的git commit后的结果)

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。(修改readme.txt,并且git add,然后又修改了readme.txt, 此时执行git checkout,回到git add 后的状态)

总之,就是让这个文件回到最近一次git commit或git add时的状态。

需求 ,现在我git add之后,但是我还想放弃git add,回到上一次git commit的状态,怎么办? (就是说撤销掉暂存区,回到工作区的状态)

分两步执行:

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:

$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。(HEAD^表示上一个版本,就是git log的第二次)

总结时间:

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

[git 学习篇] git checkout 撤销修改的更多相关文章

  1. [git 学习篇]git管理的是修改,并非文件

    你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的 ...

  2. [git 学习篇] git commit原理 --实践体会

    1 现对readme.txt作出修改,增加一行内容: Git has a mutable index called stage. Git is a distributed version contro ...

  3. [git 学习篇] git remote add origin错误

    http://blog.csdn.net/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin git@githu ...

  4. [git 学习篇] git文件版本回退再学习

    需求;  准备把readme.txt回退到上一个版本,也就是“add distributed”的那个版本 首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3 ...

  5. Git 学习(四)操作修改和版本穿梭

    Git 学习(四)操作修改和版本穿梭 之前的章节,已介绍了本地Git库创建.暂存区增.删.改,以及提交版本库:可回顾下命令操作: git add 和 git commit. 光有之前章节的操作,Git ...

  6. git学习——<五>git分支

    git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...

  7. (转)git checkout 撤销修改

    背景:学习git相关命令 git撤销修改和版本回退 git status查看当前仓库的状态 liuzhipeng@exdroid43:~/pad/pad-test$ git status 位于分支 m ...

  8. [git 学习篇] 修改文件

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743858312764d ...

  9. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

随机推荐

  1. Java 方法介绍

    1.方法(函数)介绍 各种语言都有方法的概念(有的语言称其为函数或过程). 方法用于封装一段特定的逻辑功能.如执行计算或操作. 方法可以在程序中反复被调用,方法可以减少代码重复,便于程序的维护,有利于 ...

  2. Netweaver和CloudFoundry是如何运行Web应用的?

    Netweaver 在Jerry的微信公众号文章SAP Fiori应用的三种部署方式里提到SAP Fiori应用以BSP应用的方式部署在ABAP Front-End Server上.那么这些BSP应用 ...

  3. codeforce Gym 100342H Hard Test (思考题)

    题意:构造让Dijkstra单源最短路算法有效松弛次数最多的数据... 题解:构造,题意换种说法就是更新晚的路径要比更新早的路径短.因为所有点都会更新一次,那么按照更新时间形成一条链,即到最后一个点的 ...

  4. python 基础之for循环有限循环

    #  range(3) 表示 >>> range(3) [0, 1, 2] for循环 for i in range(3): print(i) 测试 0 1 2 打印1~100的奇数 ...

  5. Ubuntu编译Android源码过程中的空间不足解决方法

    Android源码一般几十G,就拿Android5.0来说,下载下来大概也有44G左右,和编译产生的文件以及Ubuntu系统占用的空间加起来,源码双倍的空间都不够有.编译源码前能分配足够的空间再好不过 ...

  6. js实现23种设计模式(收藏)

    js实现23种设计模式 最近在学习面向对象的23种设计模式,使用java 和 javascript 实现了一遍,但是因为目前大三,还没有比较正规的大项目经验,所以学习的过程种我觉得如果没有一定的项目经 ...

  7. springboot 内置tomcat maxPostSizs 无法设置

    ++++++++++++++++++ RT +++++++++++++++++ 如下代码方可解决: /** * tomcat配置类 * 解决post数据体大于2048kb无法接收问题 * 解决tomc ...

  8. PAT (Basic Level) Practise (中文)- 1015. 德才论 (25)

    http://www.patest.cn/contests/pat-b-practise/1015 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡 ...

  9. Bootstrap历练实例:下拉菜单插件方法的使用

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  10. UITableView上添加按钮,按钮点击效果延迟的解决办法

    在自定义的TableView的初始化方法做如下操作 - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame: ...