【问题标题】:How to reset / clean a GitLab repository如何重置/清理 GitLab 存储库
【发布时间】:2019-05-15 07:02:04
【问题描述】:

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

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

首先:从磁盘中删除物理存储库。我已经尝试重命名文件夹(repo.git),但是 gitlab 给我一个 404 错误,试图访问它。

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

有人知道怎么做吗?

谢谢,

【问题讨论】:

  • “重置我在 gitlab 上的一个仓库,但不删除整个项目”这是什么意思?
  • 我说的是只清理git仓库,不影响问题/cmets/code sn-ps等
  • 那么你就不能删除所有文件,把它变成一个提交,然后推送它吗?或者你的意思是你想删除整个历史?如果是后者,这已经很好地讨论过了,例如stackoverflow.com/questions/9683279/…

标签: gitlab


【解决方案1】:

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

git push -f master origin.

【讨论】:

  • 嘿,谢谢这更容易解决我的问题!
  • 这不起作用: $ git push -f master origin 。致命:无效的参考规范'。'
  • 提交,否则会报错
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    如果您想删除分支的历史记录,Matt 已经建议了与我相同的策略。 唯一想说的是“取消保护”受保护的分支,否则您可能会遇到这样的错误:

    git push -f origin last_known_good_commit:branch_name
    

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

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

    【讨论】:

      【解决方案4】:

      我一直在问自己同样的问题,并且遇到了你提到的同样的问题。我的存储库中有很多以前不应该存在的杂物,这就是我想这样做的原因。我可以轻松地将我的本地 repo 减少到

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

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

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

      现在您可以通过导入该 tar.gz 在 gitlab 上创建一个新项目,并且希望您的所有问题、标签等都来自原始项目,但使用新存储库。

      现在您可以重命名旧的和新的存储库,希望您应该一切顺利。我知道这并不理想,但在我的情况下,这是我想要保留的问题历史记录,以及一个精简版的 repo。

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-13
        • 2011-03-23
        • 1970-01-01
        • 2023-04-06
        • 2021-03-13
        • 2013-09-01
        • 2022-01-01
        • 2020-12-19
        相关资源
        最近更新 更多