通过 Gitlab 找回远程本地都删除的Commit

Posted odirus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过 Gitlab 找回远程本地都删除的Commit相关的知识,希望对你有一定的参考价值。

背景介绍

  最近我们的DevOps平台做了一次升级,从安全方面考虑增加了一个检查规则:非特殊情况下,每次发版时代码中必须包含上一次发布的Commit,这个是为了规避曾经出现过的“代码合并过程中丢失功能”的问题。

  今天我们的一个内部项目上到DevOps平台时就出现了问题,当时的一个功能发布在relase/x分支下,发布后没有及时合并到master分支。然后我做了一次分支清理,原本是想把本地的分支都清理掉,结果IDE也自动把远程分支删除完了,这就尴尬了,相当于上次发布的commit就丢失了。

 

解决办法

  先想办法找到上一次发布commit时的SHA,然后通过 "New Branch" 功能创建分支即可恢复(Commit恢复后对应的Tag也会自动恢复),如下图所示:  

 

   看来Gitlab内部还是保存了各个历史版本的,非常赞!

 

后记

  一般在项目中除了分支合并漏会导致丢失commit外,使用Squash功能也会出现(有时候为了整合多次提交信息,会通过Squash把多个Commit合并成一个Commit,看起来会更加整洁),当出现这种情况后就可以通过上面的方法来恢复。

 

以上是关于通过 Gitlab 找回远程本地都删除的Commit的主要内容,如果未能解决你的问题,请参考以下文章

通过SSH克隆远程仓库(GitLab)到本地

git找回一个已经从远程仓库删除的文件

git学习GitLab中如何批量删除本地以及远程的TAG标签

git学习GitLab中如何批量删除本地以及远程的TAG标签

如何删除GitHub或者GitLab 上的文件夹

git --- 删除本地分支和远程分支操作