Получить файл или папку из git commit hash - PullRequest
1 голос
/ 21 января 2012

Допустим, у меня есть хеш ccf52ef35d7767c5b0f251542ab79608c50a3a56.

Как использовать командную строку git для получения содержимого файла из хэша коммита и структуры файла.

Кроме того, как я могу получить список каталогов, если путь - это каталог, а не файл.Мне не нужно проверять, только две команды, которые вы бы использовали для каждой.

Я знаю, что это команда: git log [<options>] [<since>..<until>] [[--] <path>...] и вот страница .

Я попытался git log ccf52ef35d7767c5b0f251542ab79608c50a3a56, но это только что вернуло обобщенный git log (все коммиты).Я даже не знаю, как мне получить содержимое файла, за исключением, возможно, передачи его в ls или cat.

Редактировать: Хорошо, поэтому я понял git show --pretty="format:" --name-only a3da8bb.Является ли лучший способ просто найти каталог или катать файл оттуда?Редактировать 2: увидел ответ, спасибо.Все еще пытаюсь понять, как cat файл.

Ответы [ 2 ]

5 голосов
/ 21 января 2012

Возможно, вы захотите:

git show --pretty="format:" --name-only <sha1 hash>

Он покажет файлы, добавленные / измененные / удаленные в коммите.Вместо --name-only вы можете использовать --name-status для отображения имен вместе со статусом (изменено, добавлено ..)

Чтобы получить содержимое файла, вы можете использовать:

git show <hash>:file

или

git cat-file -p <hash>:file
1 голос
/ 21 января 2012

Я понял это.Довольно просто, на самом деле.

git show hash:path/to/file

...