如何重置/清理GitLab存储库

时间:2018-12-14 01:33:38

标签: gitlab

我想在gitlab上重置我的一个存储库,但不删除整个项目。

我已经在Gitlab论坛上(在https://forum.gitlab.com/t/how-can-i-delete-a-repository-and-push-a-new-one/690上阅读了)两种不同的选择:

首先:从磁盘删除物理存储库。我尝试重命名该文件夹(repo.git),但是gitlab尝试访问该文件夹时出现404错误。

第二个:删除所有分支。此解决方案也不起作用,因为无法删除主分支(在我的案例主数据库上),并且在创建新分支时,新分支需要指定一个“原始”分支。我无法在没有任何数据的情况下创建干净的分支并将其更改为主要分支。

有人知道该怎么做吗?

谢谢

4 个答案:

答案 0 :(得分:2)

我一直在问自己同样的问题,并且遇到了您提到的相同问题。我的仓库中有很多杂物,这些杂物不该在此之前存在,这就是为什么我要这样做。我可以轻松地将本地存储库减小到<1MB,然后将其强制推送到gitlab,但是托管存储库的大小根本不会减小(我想人工制品会保留在存储库中)。将所有问题转移到新的回购中也不可行,因为日期都变成了“今天”的日期,而且很麻烦。

我想我已经找到了一种方法。首先导出您当前的仓库,并从gitlab下载tar.gz文件(其中包含仓库,问题等)。然后创建/修改/用新的仓库来替换现有仓库。准备就绪后,创建一个捆绑的新仓库,即:您想要的仓库(在该仓库内):

git bundle create /tmp/project.bundle --all

然后用新的project.bundle替换下载的tar.gz中的project.bundle

现在,您可以通过导入tar.gz在gitlab上创建一个新项目,希望您应该拥有原始库中的所有问题,标签等,但是要有新的存储库。

现在,您可以重命名新旧存储库了,希望您一切顺利。我知道这并不理想,但就我而言,这就是我要保留的问题历史记录以及经过删减的回购版本。

希望这会有所帮助!

答案 1 :(得分:2)

有一个解决方法,它对我有用。首先,在项目的设置/存储库页面上,将默认分支更改为非master分支,然后删除master分支并将新文件推送到master,最后将默认分支更改回master并删除您不使用的所有其他分支不需要。

答案 2 :(得分:2)

删除除master以外的所有分支,取消保护master中的settings -> repository -> protected branches并执行:

git push -f master origin

答案 3 :(得分:1)

如果要删除分支的历史记录,Matt已经建议了我执行的相同策略。 唯一要说的就是“取消保护”受保护的分支,否则您可能会遇到类似以下的错误:

git push -f origin last_known_good_commit:branch_name

远程:GitLab:不允许将推送代码强制到该项目上受保护的分支。

转到项目“存储库设置/受保护的分支”,然后取消对其的保护。完成更新操作后,您可以再次保护分支。 如果您正在与其他人一起从事同一项目,请小心重写存储库历史记录。