У меня есть архивированный git-репозиторий в формате tar.gz, содержащий файл .pack в папке объекта.

Как мне извлечь из него исходный код?

1 ответ1

1

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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .