git diff --name-only显示未更改的文件

时间:2015-12-23 11:17:23

标签: git git-diff

编辑:事实并非如此,我在下面解释了是什么让我这么想。

我正在处理功能分支,命令git diff develop --name-only的输出显示了大量文件:

...

path/to/some/unchangedFile.cpp

...

并且命令git diff develop -- path/to/some/unchangedFile.cpp显示没有输出,并且两个提交中的文件都相同。

什么可能导致这样的问题?

2 个答案:

答案 0 :(得分:0)

所以对我来说问题是:

<强>一个。打印的路径是相对于存储库的根目录而言并不是绝对的或相对于工作目录。我个人认为这是一个糟糕的实现,因为大多数时候我使用--name-only I将要对已更改的文件执行任务,我不需要&#34;修剪&#34;我自己的道路

<强>湾当两个提交中都不存在文件参数时,git-diff不会打印任何内容。在我看来这是违反直觉的。当没有显示输出时,我假设文件存在并且在两次提交中都是相同的。在这种情况下,我认为警告信息是合适的。

答案 1 :(得分:0)

您可以列出功能分支中自创建以来更改的(跟踪)文件:

$ git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD develop)

$(git merge-base FETCH_HEAD develop)返回创建当前分支之前对development的最后一次提交。然后diff将当前磁头与此提交进行比较。

您还可以查看自上次提交以来文件已更改

$ git --no-pager diff --name-only FETCH_HEAD~1