不管是修改还是新建文件,都必须通过git add把这次修改从工作区加到暂存区;
commit只是提交暂存区的修改,还没add到暂存区处于工作区的修改是不会commit的;
 
git checkout可以将工作区的文件用暂存区的文件去替换掉,用于没commit之前;
 
git reset —mixed可以将commit到本地仓库的修改记录回滚,并删掉暂存区的文件,但是工作区的修改还在,相当于只修改了文件,没有 add到暂存区,也没有commit到仓库,用于没push之前;
git reset —soft,只回滚记录,不删掉暂存区的文件;
git reset —hard,回滚记录,删除暂存,并删除本地修改,相当于全部回滚。
 
                    工作区—>暂存区—>本地仓库
hard               回滚         回滚         回滚
mixed             no            回滚         回滚
soft                 no             no           回滚
checkout        覆盖          no            no 
 
git revert用于把远程仓库覆盖本地仓库
 
reset会删掉之前的记录,revert保留记录,并生成依次新的commit;
 
revert只会revert针对当前一条记录重新做一次commit,并不会把这个记录之后提交的记录revert;
 
可以revert revert;
 
revert某条记录的时候,别人之后提交的记录不会丢,但是别人提交的代码可能被你这次revert给弄丢掉;
 
不要merge之后revert; 

Git的checkout, reset, revert的更多相关文章

  1. 第二章 git 工作区与reset,revert

    1.Git工作区原理图 要清楚理解git reset的三个模式的区别,首先应该搞明白Git的各个工作区的划分. 工作区(working directory):在当前仓库中,新增,更改,删除文件这些动作 ...

  2. git代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Ho ...

  3. 关于git的reset、checkout、revert

    https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting/file-level-operations 最 ...

  4. 代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Git仓库有三个主要组成——工作目录,缓存区和提交历史. 从图中我们可以看出,缓存区或者叫索引,其实是指一整套即将被下一个提交的文件集合.也 ...

  5. git reset revert 回退回滚取消提交返回上一版本

    git reset revert 回退回滚取消提交返回上一版本 总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你 ...

  6. git branch & checkout fetch 的使用和冲突解决

    git branch & checkout fetch 的使用和冲突解决 branch git branch 查看本地分支 git branch -v    查看本地分支的具体信息(commi ...

  7. [译]reset, checkout和revert

    git reset, git checkout, git revert能让你撤销你本地仓储的一些修改,  前两种命令可以作用于commit或者一个文件. Commit级别的操作 注意了git reve ...

  8. 代码回滚:Reset、Checkout、Revert 的选择

    git reset.git checkout 和 git revert 是你的 Git 工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文 ...

  9. git reset revert区别

    git revert HEAD~1 撤销倒数第二次提交,并将这次操作作为一个新提交添加到log里,之前的提交历史不变,是撤销某次提交 git reset,直接回退到指定版本 git reset --s ...

随机推荐

  1. [LeetCode] Power of Three 判断3的次方数

    Given an integer, write a function to determine if it is a power of three. Follow up:Could you do it ...

  2. [LeetCode] Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最小共同父节点

    Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...

  3. BAS/BRAS/RADIUS简介

    标签: java radius协议   linux radius认证服务器   转自: http://blog.csdn.net/sun93732/article/details/5999274 由R ...

  4. com.panie 项目开发随笔_功能任务设计(2016.12.28)

    (一) 第一个菜单 做什么好呢? 1)上次 在研究的功能 是 爬虫,需要将定时爬虫的任务加进来 2)博客的页面,也需要重新布局出来 3)需要做一个,添加博客的页面 (二) 那就先做博客管理吧! 先添加 ...

  5. Http client 请求

    public String sendPost(String url, String param) { System.out.println("------------------ 1&quo ...

  6. Sql 2008 的常用函数

    1.LEN 函数:返回数据的长度 ') 返回:8 2.ASCII函数:返回字符串最左边的ascii值 SELECT ASCII('abc') 返回:97 3.LEFT函数:从左边开始截取指定长度的字符 ...

  7. JsonResult类设置返回json的长度(工作笔记 json转化出错)

    public JsonResult PoundageReportSearch()         {    JsonResult jr = new JsonResult();        // 实例 ...

  8. 在mysql 查询语句中将时间戳格式转化为年月日格式

    SELECT  FROM_UNIXTIME('时间戳的字段名称', '%Y-%m-%d %H:%i:%s')   FROM `表名` http://www.cnblogs.com/tdalcn/arc ...

  9. windows CMD下的命令

    1.  dir 列出当前目录的内容 2.  切换目录 C:\Users\shuyun>e: ## 切换主目录 E:\>cd DataCenter ## cd 切换子目录 E:\DataCe ...

  10. Java中创建对象的5种方式

    作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有5种创建对象的方式,下面给出它们的 ...