git 回滾 commit 的近幾次版本

問題:我們在使用git本地commit時,如果commit了好多次沒有push,又想把最後一次或者最近幾次commit的不想push了,可以用下面的方法撤銷(推薦使用第一種)。

注意:git 只能撤銷最後一次或者最後多次的commit,不能只撤銷中間的某一次!!!

解決辦法:

(1)最方便,不需要commit_id:使用命令 git  reset  --hard  head~1   

         hard表示撤銷commit,並且回退本地代碼,如果只是想撤銷commit操作而不回退代碼,將--hard改爲--soft即可;

         1表示回退最後一次commit,想回退最後兩次改爲2即可。

(2)先獲取commit操作的commit_id : git  log

        每一次commit操作都會有一個commit_id

         

然後使用命令:git  reset  --soft  0d1bc96289a2e7fdda6a2323f4b781593ae6a72f    

   表示撤銷0d1bc96289a2e7fdda6a2323f4b781593ae6a72f 之後的0d1bc96289a2e7fdda6a2323f4b781593ae6a72f 的commit操作不撤回;若想將代碼也回退,使用--hard。

(3)idea裏面操作

       跟2一樣,也先獲取commit_id

       然後找到idea裏面的reset  Head

    

選擇回退方式

     git  reset  --mixed:此爲默認方式,不帶任何參數的git reset,即時這種方式,它回退到某個版本,只保留源碼,回退commit和index信息
     git  reset   --soft:回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit即可

    git  reset  --hard:徹底回退到某個版本,本地的源碼也會變爲上一個版本的內容,此命令 慎用!

然後輸入上一個或者上幾個要撤銷那個commitId

最後點擊reset按鈕就可以了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章