不管是修改还是新建文件,都必须通过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] Shortest Word Distance II 最短单词距离之二

    This is a follow up of Shortest Word Distance. The only difference is now you are given the list of ...

  2. [LeetCode] Two Sum II - Input array is sorted 两数之和之二 - 输入数组有序

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  3. pImpl

    之前看代码,一直对pIml这个用法一知半解,参考这里 的一篇文章后有所收获. 总结一下,pIml的好处如下: 第一,引入更多的头文件降低编译速度.而且这个声明当然写在一个头文件里,而头文件,是不能预编 ...

  4. RabbitMQ操作

    注意:在rabbitmq中,可以存在多个exchange,exchange只是负责接收消息,然后消息必须发送到给queue中,如果没有queue,消息就丢失了,exchange就相当于交换机,不负责存 ...

  5. Android 实时监测(监听)网络连接状态变化

    http://blog.csdn.net/mxiaoyem/article/details/50708052

  6. delphi 实现最小化系统托盘

    1.new -->application 2.在form1中加入一个tPopMenu 命名为pm1 3.uses ShellAPI; 4.定义一个常量在 const WM_TRAYMSG = W ...

  7. java编码

    /**     * @Comments:default:ISO-8859-1 -> UTF-8 乱码则转码     * @param: str(乱码字符),coding(default:ISO- ...

  8. 企业SOA架构设计理论

    SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...

  9. UVA725

    虽然是暴力求解,但是也要观察条件,尽量提高效率.如本题,原本要枚举10个数,但是分析可知通过枚举fghij就可以了. #include<stdio.h> #include<strin ...

  10. Install ArchLinux(draft)

    1.# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync 2. # timedatectl ...