Git的checkout, reset, revert

Posted Mosthink

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git的checkout, reset, revert相关的知识,希望对你有一定的参考价值。

不管是修改还是新建文件,都必须通过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的主要内容,如果未能解决你的问题,请参考以下文章

Git高级操作:reset,checkout,revert

Git - reset和checkout的区别

一图看懂git版本管理 reset revert checkout

Git的checkout, reset, revert

Git 重置reset,检出checkout和回滚revert(reverse)有什么区别?

Git 重置reset,检出checkout和回滚revert(reverse)有什么区别?