This question already has answers here:
Can I use git diff on untracked files?

(11个答案)


5年前关闭。




使用git diff时,它仅显示已被跟踪的文件。有没有办法显示差异的未跟踪文件?目标是获得一个也包含此内容的git补丁,即我有一个以git diff开头并最终通过管道将其传递到git apply的脚本。

最佳答案

您可以使用git ls-files显示未跟踪的文件:

$ git ls-files -o
-o是用于显示other类型文件的标志,表示未索引的任何文件。参见ls-files documentation at git-scm.com

编辑:

这个答案没有直接回答这个问题。

差异未跟踪(未索引)文件的问题是没有git历史可以差异化。您必须具有未跟踪文件的一些历史记录(除非create diff适合您)。在注释中,执行此操作的方法如下:
git ls-files -o --exclude-standard | xargs git add; git diff --staged
^                                  ^                ^
ls all untracked files             pipe to add      diff the staged files

本质上,您需要将所有文件添加到git索引中,以便能够对所做的更改生成差异和补丁。

这会将未跟踪的文件添加到索引中,因此在完成差异后,您将必须自己记住它们并取消登台。

关于git - 将未跟踪的文件显示为git diff ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33254470/

10-14 16:12
查看更多