我知道我可以使用该git diff命令来检查更改,但据我所知,它是基于目录的.这意味着它提供了当前目录中所有文件的所有更改.
如何仅检查一个特定文件中的更改?说,我已经更改了文件file_1.rb,file_2.rb...,file_N.rb但我只对文件中的更改感兴趣file_2.rb.我如何检查这些更改(在我提交之前)?
Gre*_*ill 581
使用如下命令:
git diff file_2.rb
Run Code Online (Sandbox Code Playgroud)
有关可以获得差异的各种事项的完整信息,请参阅git diff文档.
通常,git diff它本身会显示整个存储库中的所有更改(而不仅仅是当前目录).
AJ *_*ane 78
另一种方法(在本SO答案中提到)将保留终端中的历史记录,并为您提供文件本身的非常深入的记录:
git log --follow -p -- file
这将显示文件的整个历史记录(包括重命名以外的历史记录以及每次更改的差异).
换句话说,如果名为bar的文件曾被命名为foo,那么git log -p bar(不带--follow选项)将只显示文件的历史记录,直到它被重命名为止 - 它不会显示文件的历史,当它被称为foo.使用git log --follow -p bar将显示文件的整个历史记录,包括文件被称为foo时的任何更改.
小智 18
您可以使用以下命令查看谁更改了文件中的内容.
git blame <filename>
Moh*_*med 16
仅列出特定文件更改的提交详细信息,
git log --follow file_1.rb
Run Code Online (Sandbox Code Playgroud)
列出同一文件的各种提交之间的差异,
git log -p file_1.rb
Run Code Online (Sandbox Code Playgroud)
仅列出提交及其消息,
git log --follow --oneline file_1.rb
Run Code Online (Sandbox Code Playgroud)
小智 14
你可以执行
git status -s
Run Code Online (Sandbox Code Playgroud)
这将显示已修改的文件名,然后通过复制感兴趣的文件路径,您可以看到更改使用 git diff
git diff <filepath + filename>
Run Code Online (Sandbox Code Playgroud)
你也可以尝试
git show <filename>
Run Code Online (Sandbox Code Playgroud)
对于提交,git show将显示日志消息和文本差异(在文件和文件的提交版本之间)。
您可以检查git show文档以获取更多信息。