克隆git存储库并保持不可访问的提交

克隆git存储库并保持不可访问的提交,git,Git,有没有一种方法可以克隆远程git repo,同时保留该repo中可能存在的任何无法访问的提交 场景是这样的:我需要在我维护的服务器上恢复从裸git repo中删除的分支。我有上一次提交到此分支的散列,但常规git命令似乎无法在裸repo上运行,因此据我所知,没有任何方法可以直接在服务器上恢复它 我也无权访问任何包含此提交的非裸回购协议。如果我这样做了,我可以通过检查提交散列,然后从中创建一个分支来轻松恢复它。这就是为什么我希望能够克隆此repo,同时在其中保留任何无法访问的提交,这样我就可以做到

有没有一种方法可以克隆远程git repo,同时保留该repo中可能存在的任何无法访问的提交

场景是这样的:我需要在我维护的服务器上恢复从裸git repo中删除的分支。我有上一次提交到此分支的散列,但常规git命令似乎无法在裸repo上运行,因此据我所知,没有任何方法可以直接在服务器上恢复它


我也无权访问任何包含此提交的非裸回购协议。如果我这样做了,我可以通过检查提交散列,然后从中创建一个分支来轻松恢复它。这就是为什么我希望能够克隆此repo,同时在其中保留任何无法访问的提交,这样我就可以做到这一点。

您想做的是:

  • 使用普通文件复制命令将裸repo复制到另一个文件夹
  • 执行查找提交对象所需的操作
  • 找到丢失的分支后,在丢失的提交位置创建一个新分支
  • 将原始裸回购添加为远程回购
  • 将新分支推送到裸存储库

  • 值得一提的是,许多(并非所有)git命令都可以在裸repo上工作,例如,您可以
    git show
    git branch
    ,等等。
    git branch
    方法将是解决问题的最快方法,假设提交仍然存在。@torek我已经解决了我的问题,但我还是尝试了这个方法。它确实有用!我使用的确切语法是
    git-branch
    。这种形式的命令显然在裸回购协议上效果良好。谢谢您好,我不维护服务器(BitBucket),但我确实需要进行孤立提交。此提交位于无人拥有副本的分支上。我可以在BB中看到它,但无法获取或克隆它。请帮助=)如果你能看到提交,那么你知道它的散列。您可以使用git-fetch-origin:refs/remotes/origin/orphaned-commit来获取它