检查特定提交的特定文件中的更改,Git

时间:2014-08-20 08:39:41

标签: git

我希望检查特定提交的特定文件中的更改(通过其SHA1)。

我有一个git提交的SHA1 - 16a75e59,在此提交中有几个文件被更改。我只想检查其中一个更改 - /www/htdocs/doms/js/Test.js。

我知道此文件已在此提交中更改: 如果我跑

git show 16a75e59 | grep Test.js

我得到了

echo Resolve::minify( file_get_contents( '/www/htdocs/doms/js Test.js' ) ); diff --git a/www/htdocs/doms/js/Test.js b/www/htdocs/doms/js/Test.js --- a/www/htdocs/doms/js/Test.js +++ b/www/htdocs/doms/js/Test.js

但是当我尝试

git show 16a75e59 www/htdocs/doms/js/Test.js

我得到了

fatal: ambiguous argument 'www/htdocs/doms/js/Test.js': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'

更新:尝试 - 并且一切正常。似乎是我第一次尝试 - 使用前导斜线。

答案是:git show 16a75e59 -- www/htdocs/doms/js/Test.js

2 个答案:

答案 0 :(得分:3)

如果&#34;没有工作&#34;你有这样一条消息:

$ git show d8b396e /t/t7509-commit.sh
fatal: ambiguous argument '/t/t7509-commit.sh': unknown
revision or path not in the working tree.

(注意:我自己拆分线以使其更合适,它是原始的一行),然后是因为/path/to/file.js包含一个前导斜杠。删除它:

$ git show d8b396e t/t7509-commit.sh
commit d8b396e17ecfe28b39b5f4470f791c434cce40ec
Author: Fabian Ruch ...
...
diff --git a/t/t7509-commit.sh b/t/t7509-commit.sh
index b61fd3c..9ac7940 100755
--- a/t/t7509-commit.sh
+++ b/t/t7509-commit.sh

(如果您在原始问题中准确显示您使用的命令和确切的错误消息,则会有所帮助。这通常可以避免需要猜测问题。)

答案 1 :(得分:1)

可能您可以尝试git diff命令

检查

git diff SHA1^ SHA1 /path/to/file.js