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  //告訴你哪些文件會被刪
相關文章
相關標籤/搜索