我修改了一个文件,我不知道什么时候了。我想查看我更改该文件的所有提交。基于这些提交,我想在其他文件中搜索其他修改,这些修改链接到我正在搜索的修改。我试过git blame
但似乎只是显示了最后一次提交和未提交的更改。谁能告诉我怎么做?
更明确一点:我在json文件中搜索修改,基于这些,我在我的应用程序代码(cpp)文件中做了一些修改。所以我想搜索这些提交并查看我修改过的代码。 P.S。:我同时改变了json的结构,所以我不想只是最后一次修改。
答案 0 :(得分:3)
要查看提交更改某些文件的内容和方式,您可以使用log
命令和-p
开关:
git log -p somefile/somefile.cpp
答案 1 :(得分:1)
您可以使用以下命令查看影响某个文件的所有提交:
git log -- <filename>
如果要查看随该文件一起修改的其他文件,可以使用--name-only
选项。这将列出在该提交中修改的所有文件。
git log --name-only <filename>
答案 2 :(得分:0)
要找出谁更改了文件,您可以针对单个文件运行git blame,并逐行获取该文件的细分,以及最后影响该行的更改。它还打印出时间戳和作者信息以及link
答案 3 :(得分:0)
在日常工作中,我发现这是最方便的:
gitk <some file or directory>
很高兴能够快速过滤掉所有改变某个目录内容的提交,特别是在更大的系统中。您可以单击文件以立即查看差异这一事实,这至少是获得概述的最快方式。