Чтобы завершить свой собственный ответ, синтаксис действительно
git show object
git show $REV:$FILE
git show somebranch:from/the/root/myfile.txt
git show HEAD^^^:test/test.py
Команда принимает обычный стиль ревизии, что означает, что вы можете использовать любое из следующего:
- название филиала (как предлагается от ash )
HEAD
+ x количество ^
символов
- Хэш SHA1 данной ревизии
- Первые несколько (может быть, 5) символов данного хэша SHA1
Совет Важно помнить, что при использовании "git show
", всегда указывает путь от корня хранилища , а не от текущей позиции каталога.
(Хотя Mike Morearty упоминает, что, по крайней мере с git 1.7.5.4, вы можете указать относительный путь, поставив "./
" в начале пути - например:
git show HEAD^^:./test.py
)
До git1.5.x это было сделано с помощью некоторой сантехники:
git ls-tree <rev>
показать список одного или нескольких объектов blob в коммите
git cat-file blob <file-SHA1>
cat файл, поскольку он был зафиксирован в определенной ревизии (аналогично svn
кошка).
используйте git ls-tree для получения значения заданного файла-sha1
git cat-file -p $(git-ls-tree $REV $file | cut -d " " -f 3 | cut -f 1)::
git-ls-tree перечисляет идентификатор объекта для $ file в ревизии $ REV, это вырезано из выходных данных и используется в качестве аргумента для git-cat-file, который действительно должен называться git-cat-object, и просто сбрасывает этот объект в стандартный вывод.
Примечание: начиная с Git 2.11 (4 квартал 2016 г.), вы можете применить фильтр содержимого к выводу git cat-file
!
См. commit 3214594 , commit 7bcf341 (09 сентября 2016 г.), commit 7bcf341 (09 сентября 2016 г.) и commit b9e62f6, коммит 16dcc29 (24 августа 2016 г.) Йоханнес Шинделин (dscho
) .
(Объединено с Junio C Hamano - gitster
- в коммит 7889ed2 , 21 сентября 2016 г.)
cat-file
: поддержка --textconv
/ --filters
в пакетном режиме
Несмотря на то, что «git hash-objects
», который является инструментом для получения потока данных внутри файловой системы и помещения его в хранилище объектов Git, позволял выполнять «внешний мир для Git» «преобразования (например, преобразования в конец строки и применение чистого фильтра), и с самого начала у него была функция по умолчанию, обратная операция« git cat-file
», которая требует объект из хранилища объектов Git и внешний для потребления внешним миром, отсутствовал эквивалентный механизм для запуска «Git-to-outside-world»
git config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <"
git cat-file --textconv --batch
Примечание: "git cat-file --textconv
" недавно начал segfaulting (2017), который
исправлено в Git 2.15 (4 квартал 2017 г.)
См. commit cc0ea7c (21 сентября 2017) Джефф Кинг (peff
) .
(Объединено с Junio C Hamano - gitster
- в commit bfbc2fc , 28 сентября 2017 г.)