Git 如何撤回某一次提交

Git 如何撤回某一次提交

在 master 分支作了一次 commit ??!!

git add index.js
git commit -m '自覺得是在開發分支實際上是在master分支的一次提交'

以前沒有出過這樣的錯誤。就算出現也是直接push了而後再 reset 回滾而後再次 push -fgit

如何合適的解決這種狀況

reset的三個參數

--mixed(默認參數)

重置位置的同時,只保留Working Tree工做目錄的內容,但會將暫存區 和 Repository 中的內容更改和 reset 目標節點一致,因此原節點和Reset節點之間的變動文件,會放入Working Tree工做目錄中。code

簡單來講就是:不刪除工做空間改動代碼,可是撤銷commit,而且撤銷git add開發

git reset --mixed HEAD^ 和 git reset HEAD^
HEAD^ HEAD~1 HEAD~2 其中 HEAD^ HEAD~1 同爲上一個版本, HEAD~2 爲上兩個版本,也就是兩次commit,以此類推

若是須要再撤銷修改it

git checkout index.js

--soft

重置位置的同時,保留 working Tree 工做目錄和暫存區的內容,只讓 repository 中的內容和 reset 目標節點保持一致,因此原節點和reset節點之間的變動文件會放入暫存區中。ast

簡單來講就是:不刪除工做空間改動代碼,撤銷commit,不撤銷git add文件

--hard

重置位置的同時,直接將 working Tree工做目錄、 暫存區及 repository 都重置成目標 reset 節點的內容。co

簡單來講就是:刪除工做空間改動代碼,撤銷commit,撤銷git addblock

這個操做會直接恢復到了上一次的 commit 狀態。

若是已經push origin

在作完上面的操做後工作

git push origin -f
通常在撤回回滾的操做時候請記錄好 commit 的版本號,以防再次出現失誤沒法挽回
相關文章
相關標籤/搜索