如何从差异输出中获取提交的 SHA?
How to get the SHA of commit from diff output?
如何从 diff 输出中获取提交的 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
的版本?
如果您想像 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?
的答案
如何从 diff 输出中获取提交的 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
的版本?
如果您想像 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?