git - 从包文件恢复 git repo

标签 git

我正在接管一些项目,但我没有合适的 git 存储库,而是一个 pack-7dab97d983eeb36321c680bee7fde43688334f52.pack 文件。我可以从中恢复工作的 git 存储库吗?以及如何?

最佳答案

pack 文件只包含提交,所以你没有分支名称,你必须猜测它们。悬空提交是一个很好的起点。

  • 创建一个空的仓库
  • 将包复制到.git/objects/pack/
  • 可能会索引包(我不确定是否需要)
  • 运行 git fsck --lost-found
  • 从找到的提示中选择您可能的分支

请注意,如果打包文件只是原始存储库中的几个文件之一,它将失败,因为它可能取决于您没有的对象

关于git - 从包文件恢复 git repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616570/

相关文章:

git - 将 git 存储库移动到同一路径中的子目录,同时保留其所有历史记录

git - 请在 merge 之前提交您的更改或 stash 它们

Gitignore 错误地排除了子文件

git - 排除嵌套文件夹的 gitignore 模式是什么?

git clone -c core.symlinks=true 不起作用

git - 如何将现有的 repos 克隆到 gitlab 中的一个组

python - GitPython - 获取未跟踪的文件

git - 从 Git 中删除代码是否可以在需要时轻松将其恢复?

git - 如何维护 Drupal.org 项目的本地镜像?

git - 使远程分支 5 次提交回来