是否有一种方法可以列出更改特定文件的所有提交?


当前回答

如果你希望看到提交中对特定文件的所有更改(而不仅仅是对文件本身的更改),你可以传递——full-diff:

git log -p --full-diff [branch] -- <path>

其他回答

如果你希望看到提交中对特定文件的所有更改(而不仅仅是对文件本身的更改),你可以传递——full-diff:

git log -p --full-diff [branch] -- <path>

正如jackrabb1t指出的那样,——follow更加健壮,因为它继续列出重命名/移动之外的历史记录。因此,如果你正在寻找一个当前不在同一路径上的文件,或者一个在多次提交中被重命名的文件,——follow将跟踪它。

如果你想可视化名称/路径的变化,这可能是一个更好的选择:

git log --follow --name-status -- <path>

但如果你想要一个更紧凑的清单,只列出重要的事情:

git log --follow --name-status --format='%H' -- <path>

甚至

git log --follow --name-only --format='%H' -- <path>

缺点是—follow只适用于单个文件。

如果你想查看所有修改文件的提交,在所有分支中,使用这个:

git log --follow --all <filepath>
gitk <path_to_filename>

假设已经安装了包“gitk”。

如果没有安装,请执行以下操作:

sudo apt-get install gitk

然后尝试上面的命令。它是Linux的…如果Linux用户需要GUI,它可能会对他们有所帮助。

如果您试图跟踪在前一次提交中删除的文件,请使用

git log --follow -- filename