天天看點

【GitLab】在IDEA中復原主分支

這是工作中遇到的問題,記錄下來,也友善自己後面檢視操作步驟,也友善各位遇到這個問題,不至于卡太久。

首先切換到主分支,這裡以圖中ejob項目為例。

【GitLab】在IDEA中復原主分支

切換到主分支後,打開ejob項目的git曆史記錄。

【GitLab】在IDEA中復原主分支

例如圖中,從目前位置準備復原到指定位置,右鍵選擇

Reset Current Branch to Here...

。(注意:操作前要确認代碼有沒有備份,其他分支或者本地有沒有,别到時候復原後,代碼沒了,沒備份就難搞了)

【GitLab】在IDEA中復原主分支

點選後會出現一個彈窗,選擇

Hard

。隻有選擇hard才會删掉之前所有的記錄。

【GitLab】在IDEA中復原主分支

點選

Reset

後,就會發現git的曆史記錄,復原位置之前的記錄都不見了。

因為GitLab會保護主分支,如果我們直接push,是會出問題的,是以我們應該先關掉GitLab中,對ejob項目主分支的保護。

打開GitLab的ejob項目頁面,選擇

Setting

【GitLab】在IDEA中復原主分支

然後選擇

Protected branches

,點選

Unprotect

,就會把主分支的保護删除掉。(可以恢複,放心操作)

【GitLab】在IDEA中復原主分支

點選後,那條保護沒了,說明操作成功。

【GitLab】在IDEA中復原主分支

因為當我們使用git的push操作時,git會預設pull把遠端的内容拉取下來,是以我們需要通過指令

git push -f

推到主分支,加上-f就push的時候就不會進行pull操作。但是由于IDEA的push是沒有-f的操作,是以我們是需要通過指令來執行的。

然後回到IDEA中,打開底部Terminal視窗(直接打開項目的檔案夾,右鍵點選Git Bash Here也是可以的),然後進入ejob項目的檔案夾。

【GitLab】在IDEA中復原主分支

輸入

git push -f

送出。

然後我們就可以到GitLab的ejob項目主分支看曆史記錄,如果送出記錄最新到我們現在的復原位置,那麼說明復原成功。

然後我們再把主分支的保護開啟。

【GitLab】在IDEA中復原主分支

選中

master

後,點選

Protect

恢複對主分支的保護。

【GitLab】在IDEA中復原主分支

到此為止,就完成對主分支的復原。