1.git reset --hard <commit_id> //正真的退回到了<commit_id>状态,git记录个源码都退到那个状态了。
2.git reflog //查看分支切换信息,git checkout + commit_id 切到某一个分支。
3.git push origin HEAD --force //HEAD 最近一次提交,HEAD^ 上一次提交
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式(不带任何参数的git reset),它回退到某个版本,但保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
4.git checkout .
#本地所有修改的。没有的提交的,都返回到原来的状态
5.git stash
#把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
二、场景
1.删错了,版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本,git checkout其实是用版本库里的版本替换工作区的版本
$ git checkout -- test.txt
2.已经提交了不合适的修改到版本库时,想要撤销本次提交,不过前提是没有推送到远程库。HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令:
$git reset --hard commit_id
3.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令:
$ git checkout -- file
4.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了3,第二步按3操作.
待续......
待看:http://blog.csdn.net/u011510825/article/details/50260759
本文参考链接:https://www.cnblogs.com/hellokitty2/p/7731925.html