使用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”输出?