У меня есть архивированный git-репозиторий в формате tar.gz, содержащий файл .pack в папке объекта.
Как мне извлечь из него исходный код?
Packfiles - это один из способов сохранения объектов в git (см. « Распаковка Git Packfiles »). Из ваших комментариев похоже, что архив содержит содержимое каталога .git
, и в этом случае я предполагаю, что тарбол также содержит папки, такие как info
и refs
в дополнение к objects
.
Таким образом, чтобы получить реальный исходный код, просто распакуйте папку:
tar -xvf archive.tar.gz
и переместите содержимое в каталог с именем .git
. Другими словами, вы должны получить дерево каталогов, которое выглядит как
myproject
|-- .git
| |--objects
| | |-- pack
| | | |-- pack-cdfae92.idx
| | | |-- pack-cdfae92.pack
Это "создаст" хранилище в вашем текущем каталоге. Вы можете подтвердить это, запустив git status
- он скажет, что вы удалили кучу файлов. Чтобы снова заполнить каталог (т. Е. "Восстановить" файлы), просто запустите git checkout master
.