git撤销操做

git的撤销操做:reset、checkout和revert
这三个命令均可以用于撤销。
reset和checkout能够做用于commit或者文件,revert只能做用于commit。git

工做区有改动,但未add

git checkout readme.txt
git checkout .
git checkout -- readme.txt  // 以防判断成分支

add以后,但未commit

git reset HEAD
git reset HEAD <readme.txt>

commit以后,但未push

git reset

git reset HEAD~2
git reset --hard HEAD~100     //往上100个版本

clipboard.png
clipboard.png

还有几个参数可选
--soft:只撤销了git commit操做,保留了git add操做
--mixed:撤销了git commit, git add操做
--hard:撤销了至工做区
clipboard.pngsegmentfault

git revert

git revert HEAD~

clipboard.png
clipboard.png

git revert <普通commitId>
git revert <merge commitId> -m <parent> 必须选择合并自哪一个分支,通常为 1,2,可经过git show <merge commitId> 展现

revert经过新建一个commit来撤销一次commit所作的修改,是一种安全的方式,并无修改commit history。安全

push到远程

git reset HEAD~
git push -f

参考连接:Git 之 revertspa

若是撤销后,发现本身不想撤销了,那么也能够还原

git reflog  // 查看commitId
git reset commitId

远程分支合并后,能够直接在远程撤销分支合并

删除本地untracked files

git clean
git clean -n  //告诉你哪些文件会被删
相关文章
相关标签/搜索