通過 Gitlab 找回遠程、本地都刪除的Commit


背景介紹

  最近我們的DevOps平台做了一次升級,從安全方面考慮增加了一個檢查規則:非特殊情況下,每次發版時代碼中必須包含上一次發布的Commit,這個是為了規避曾經出現過的“代碼合並過程中丟失功能”的問題。

  今天我們的一個內部項目上到DevOps平台時就出現了問題,當時的一個功能發布在relase/x分支下,發布后沒有及時合並到master分支。然后我做了一次分支清理,原本是想把本地的分支都清理掉,結果IDE也自動把遠程分支刪除完了,這就尷尬了,相當於上次發布的commit就丟失了。

 

解決辦法

  先想辦法找到上一次發布commit時的SHA,然后通過 "New Branch" 功能創建分支即可恢復(Commit恢復后對應的Tag也會自動恢復),如下圖所示:  

 

   看來Gitlab內部還是保存了各個歷史版本的,非常贊!

 

后記

  一般在項目中除了分支合並漏會導致丟失commit外,使用Squash功能也會出現(有時候為了整合多次提交信息,會通過Squash把多個Commit合並成一個Commit,看起來會更加整潔),當出現這種情況后就可以通過上面的方法來恢復。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM