使用git查看对特定文件的更改

我知道在git中,我可以使用git diff命令来检查更改,但是(我明白的是)它是基于目录的。 这意味着它会给出当前目录中所有文件的所有更改。

我怎样才能检查一个特定文件的变化? 说,我已经改变了file_1.rb,file_2.rb,…,file_N.rb,但我只对文件file_2.rb的变化感兴趣。 如何检查呢?

我想在我提交之前检查更改。

使用如下命令:

 git diff file_2.rb 

请参阅git diff文档以获取有关可以获得差异的事物的完整信息。

通常, git diff本身会显示整个存储库中的所有更改(而不仅仅是当前目录)。

您可以使用gitk [filename]查看更改日志

另一种方法(在这个答案中提到)将会保留在terminal的历史,并给你一个非常深刻的logging文件本身:

git log --follow -p -- file

这将显示文件的全部历史logging(包括重命名以及每次更改的差异)。

换句话说,如果名为bar的文件曾经被命名为foo,那么git log -p bar(没有–follow选项)将只显示文件的历史logging,直到它被重命名 – 它不会显示文件的历史,当它被称为foo。 使用git log –follow -p bar会显示文件的全部历史logging,包括文件被称为foo时的所有更改。

你可以执行

 git status -s 

这将显示修改后的文件名,然后通过复制感兴趣的文件path,你可以看到使用git diff变化

 git diff <filepath + filename> 

您可以使用下面的命令来查看谁更改了文件中的内容。

git blame <filename>

或者,如果您更喜欢使用自己的gui工具:

 git difftool ./filepath 

你可以设置你的gui工具在这篇文章的指导下: 如何用视觉diff程序查看“git diff”输出?