2016-04-25 7 views
0

Как я могу получить SHA фиксации из diff output?Как получить SHA фиксации с выхода diff?

Например, я хотел дифф двоичный файл, выход git show COMMIT является:

diff --git a/0_prospektusok/FAR_feltetdiszek/feltetdisz_prospektus.xls b/0_prosp 
index 9993010..707c169 100644 
Binary files a/0_prospektusok/FAR_feltetdiszek/feltetdisz_prospektus.xls and b/0 

git show 9993010 показывает файл на терминал, но если я перенаправлении его файл и открытие с MS Excel, он содержит мусор.

git checkout 9993010 говорит fatal: reference is not a tree: 9993010.

Как я могу проверить версии a и b?

+0

Возможный дубликат http://stackoverflow.com/questions/19224476/how-does-index-f2e4113-d4b9bfc-100644-in-git- diff-соответствовать-sha1-id-in-gi (я не хочу закрывать это как дубликат, хотя) – torek

ответ

1

Если вы хотите проверить весь репо, как было до COMMIT, используйте git checkout COMMIT~.
Если вы хотите сохранить свою рабочую копию и все, но только обновите файл до состояния, которое оно имело до COMMIT, используйте git checkout COMMIT~ -- 0_prospektusok/FAR_feltetdiszek/feltetdisz_prospektus.xls.
Для объяснения, почему git checkout 9993010 не работал, читал ответ на How does "index f2e4113..d4b9bfc 100644" in git diff correspond to SHA1 ID in gitk?

+0

И как я могу узнать SHA коммита, который вводит '9993010'? – bimlas

+0

Это не однозначно идентифицируется, так как это всего лишь blob с содержимым файла, которое может появляться в любом количестве коммитов. Вы можете использовать один из сценариев из ответа на http://stackoverflow.com/questions/223678/which-commit-has-this-blob, чтобы получить все коммиты, содержащие blob. Но поскольку вы делали 'git diff COMMIT', то, что вам нужно, это' COMMIT ~ '. – Vampire

Смежные вопросы