git 版本回退及遠程倉庫版本回退

在日常coding的時候,有時因爲某些原因需要進行版本回退(回滾),具體操作如下:

1. git log :使用該命令查看由近至遠提交日誌記錄,查看commit_id

$ git log

commit fbb68a72151353e6c5c256204a55eb596cf44cfe
Author: Brians <[email protected]>
Date:   Fri May 22 16:52:22 2020 +0800

    版本2.0

commit fd14ac63554c030c26232f7b6b823fac64056f37
Author: Brians <[email protected]>
Date:   Thu May 21 16:26:29 2020 +0800

    初始版本1.0

......

提交記錄過多的情況下,輸入 q 即可退出 git log 顯示

2. 如果感覺 git log 顯示信息過多,可使用命令 git log --pretty=oneline ,只顯示提交的commit_id和對應的提交說明

$ git log --pretty=oneline

fbb68a72151353e6c5c256204a55eb596cf44cfe 版本2.0
fd14ac63554c030c26232f7b6b823fac64056f37 初始版本1.0

3. git reset --hard commit_id :獲取到所需回滾版本的 commit_id 後使用該命令進行版本回滾

$ git reset --hard fd14ac63554c030c26232f7b6b823fac64056f37

HEAD is now at fd14ac6 初始版本1.0

此處commit_id可以不必完整填寫,只填前幾位字符即可,git 會自動查找,如可寫爲 git reset --hard fd14ac6

4. 如果版本不小心回退錯了,怎麼返回之前版本(未來版本)呢?命令窗口沒有關閉的話,我們可向上查找之前版本的commit_id,使用 git reset --hard commit_id 命令即可

$ git reset --hard fbb68a

HEAD is now at fbb68a7 版本2.0

當前如果窗口關閉的情況下,commit_id看不到了,我們可以使用 git reflog 命令查看

$ git reflog

fbb68a7 HEAD@{0}: reset: moving to fbb68a
fd14ac6 HEAD@{1}: reset: moving to fd14ac63554c030c26232f7b6b823fac64056f37
fbb68a7 HEAD@{2}: commit: 版本2.0
fd14ac6 HEAD@{3}: commit (initial): 初始版本1.0

然後使用 git reset --hard commit_id 進行版本回退至未來版本即可。

5. 遠程倉庫分支版本回退

如果之前版本已經提交到遠程倉庫分支上了,我們本地進行版本回退後,因爲本地版本是低於遠程倉庫版本的,所以需要使用 git push -f  強制推送至遠程分支上進行覆蓋,否則是無法推送至遠程分支上的。

git push -f origin master

 

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