Git 代碼撤銷、回滾到任意版本

一.撤消:代碼還只在本地,未push到運程倉庫,想把代碼還原到上一次commit的代碼,此時操作爲代碼撤銷

git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]

二.回滾:代碼已經push到運程倉庫,想把代碼還原到上一次提交,此時操作爲代碼回滾

處理方式:

1)先查看git提交日誌,找到上次提交的信息,輸入命令 git log (查看全部日誌)或 git log -xx(查看最近xx條日誌),也可以藉助git插件查看提交的commit的ID標識

$ git log -5

commit 508a8e76560d95a2f7c87753df4e9c604950f900
Author: xxxx
Date:   Thu Apr 2 16:26:01 2020 +0800
提交說明

commit 508a8e76560d95a2f7c87753df4e9c604950f900
Author: xxxx
Date:   Thu Apr 2 16:26:01 2020 +0800
提交說明

2)回滾到指定的版本(hard後面接的是commit的ID標識,也就是想回滾到的版本)

## 回退到指定版本,不保留原更改代碼
git reset --hard 508a8e76560d95a2f7c87753df4e9c604950f900
 
## 回退到指定版本,保留原更改代碼,且生成新的提交
git revert 508a8e76560d95a2f7c87753df4e9c604950f900

3)強制提交(這個時候已經將代碼回退了,你現在的分支狀態就處於你要恢復到提交版本)

git push --force 

4)如果你只是誤提了代碼,想保留代碼改動的話,那就在2)的時候使用revert 命令,而不是reset,兩者區別如下:

  • revert 是放棄指定提交的修改,但是會生成一次新的提交,需要填寫提交註釋,以前的歷史記錄都在;
  • reset是指將HEAD指針指到指定提交,歷史記錄中不會出現放棄的提交記錄。

5)示例

git status                    查看當前分支狀態
git log                       查看提交歷史
git reset  ***              根據提交歷史ID回滾代碼至上一次提交(參考上文)
git push --force             將代碼強制發佈

 

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