使用git diff
时,它只显示已被跟踪的文件。有没有办法显示未跟踪的文件以及差异?目标是获得一个也包含这个的git补丁,即我有一个以git diff
开头并最终将其传递给git apply
的脚本
答案 0 :(得分:6)
您可以使用git ls-files
显示未跟踪的文件:
$ git ls-files -o
-o
是显示other
类型文件的标志,表示未编入索引的任何内容。请参阅ls-files documentation at git-scm.com。
编辑:
这个答案没有直接回答这个问题。
对未跟踪(未编入索引)文件进行差异化的一个问题是没有可供使用的git历史记录。您必须拥有未跟踪文件的一些历史记录(除非create
差异适合您)。在评论中,执行此操作的方法如下:
git ls-files -o --exclude-standard | xargs git add; git diff --staged
^ ^ ^
ls all untracked files pipe to add diff the staged files
基本上你需要将所有文件添加到git索引,以便能够在更改上生成差异和补丁。
这会将未跟踪的文件添加到索引中,因此您必须在完成差异后自己记住并取消暂存。