我知道我可以使用git diff
命令来检查更改,但据我所知,它是基于目录的。 这意味着它提供了当前目录中所有文件的所有更改。
如何仅检查一个特定文件中的更改? 说,我已经更改了文件file_1.rb
, file_2.rb
,..., file_N.rb
,但我只对文件file_2.rb
中的更改file_2.rb
。 我如何检查这些更改(在我提交之前)?
#1楼
您可以使用gitk [filename]
查看更改日志
#2楼
你可以执行
git status -s
这将显示已修改的文件名,然后通过复制感兴趣的文件路径,您可以使用git diff
查看更改
git diff <filepath + filename>
#3楼
或者如果您更喜欢使用自己的gui工具:
git difftool ./filepath
您可以在此帖子的指导下设置gui工具: 如何使用visual diff程序查看'git diff'输出?
#4楼
另一种方法(在本SO答案中提到)将保留终端中的历史记录,并为您提供文件本身的非常深入的记录:
git log --follow -p -- file
这将显示文件的整个历史记录(包括重命名以外的历史记录以及每次更改的差异)。
换句话说,如果名为bar的文件曾被命名为foo,那么git log -p bar(不带--follow选项)将只显示文件的历史记录,直到它被重命名为止 - 它不会显示文件的历史,当它被称为foo。 使用git log --follow -p bar将显示文件的整个历史记录,包括文件被称为foo时的任何更改。
#5楼
您可以使用以下命令查看谁更改了文件中的内容。
git blame <filename>
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3164045