首页 > 解决方案 > 推送没有历史记录、带有子模块、没有大量变基的 Git Head?

问题描述

我有一个处于病态状态的 git 存储库,因此各种检查因偏离主分支、LFS 失败和冲突而失败。但是,存储库的负责人工作正常。我想通过创建一个新的存储库来获取当前状态并重新开始。如何在切断剩余历史记录的同时导出当前磁头?

理想情况下,我想保留

  1. 文件的当前状态
  2. 将当前 LFS 文件保存在 LFS 中
  3. 保留.gitignore配置但忽略历史离子.git文件夹
  4. 将子模块作为子模块作为子模块

我看到这git archive将导出但会破坏所有 git 结构,并且我不希望之后会得到一个 git 存储库。关于 SO( here )的一个类似问题讨论了如何归档子模块,但我不希望只是原始导出,我希望子模块仍然是子模块,并且只保留没有历史记录的头部。另一个问题在这里非常相似,但解决方案是 rebase 和 squash 但我认为我不能应用所有 5156 个旧提交,因为一些 LFS 文件已经丢失。

是否有捷径可寻?我的想法是我可能必须归档然后重新制作子模块并从旧文件中导入忽略。

标签: git

解决方案


推荐阅读