2016-04-25 54 views
0

如何从diff输出获取提交的SHA?如何从差异输出获取提交的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 9993010fatal: reference is not a tree: 9993010

如何结算ab的版本?

+0

http://stackoverflow.com/questions/19224476/how-does-index-f2e4113-d4b9bfc-100644-in-git-的可能的复制diff-corresponding-to-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

我怎样才能找到引入'9993010'的提交的SHA? – bimlas

+0

这不是唯一可识别的,因为这只是具有可能出现在任何提交量中的文件内容的blob。您可以使用http://stackoverflow.com/questions/223678/which-commit-has-this-blob答案中的其中一个脚本获取包含blob的所有提交。但是当你做了'git diff COMMIT',你后面的是'COMMIT ~'。 – Vampire