克隆 git 存储库并保留无法访问的提交

Chr*_*s L 6 git

有没有办法克隆远程 git 存储库,同时保留该存储库中可能存在的任何无法访问的提交?

场景是这样的:我需要恢复从我维护的服务器上的裸 git 存储库中删除的分支。我有这个分支的最后一次提交的哈希值,但是常规的 git 命令似乎无法在裸存储库上运行,所以据我所知,没有任何方法可以直接在服务器上恢复它。

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

Car*_*arl 5

你想做的是:

  1. 使用普通文件复制命令将裸存储库复制到另一个文件夹。
  2. 将裸存储库副本转换为普通存储库
  3. 执行您需要执行的操作来找到您要查找的提交对象。
  4. 一旦找到丢失的提交,就在其处创建一个新分支。
  5. 添加原始裸存储库作为远程。
  6. 将新分支推送到裸存储库。

  • 如果您可以看到提交,那么您就知道它的哈希值。您可以使用 `git fetch origin <commitHash>:refs/remotes/origin/orphaned-commit` 来获取它 (4认同)