一般的版本復原都是push完以後發現有錯誤需要復原,這裡要用到是git reset指令。該指令有3個參數,mixed,soft和hard,下面做簡單差別講解。
-
–mixed
不删除工作空間的改動代碼,撤銷 commit 和 add 操作。這個為預設參數,
和git reset --mixed HEAD^
效果是一樣的。git reset HEAD^
-
–soft
不删除工作空間的改動代碼,撤銷commit,不撤銷add。
-
–hard
删除工作空間的改動代碼,撤銷 commit 和 add 操作,也就是全部删除。
- 備注1:HEAD^的意思是上一個版本,也可以寫成HEAD~1,如果你進行了多次commit都想撤回,那就把1改成對應的次數。
- 備注2:HEAD^可以用 commit 的版本号直接替代,commit的版本号可以通過git log檢視。
完成操作後,恢複到了什麼版本也可以用git log來檢視。
确認回撤到你要版本以後,push的時候要用上–force參數,比如
git push --force
,此push的版本就能把中間要復原的版本覆寫掉。
最後,如果隻是想改一下commit的注釋注釋資訊,隻需要執行如下指令,就會進入vim編輯器,修改儲存即可。
git commit --amend