使用git diff它时只显示已被跟踪的文件.有没有办法显示未跟踪的文件以及差异?目标是获得一个也包含它的git补丁,即我有一个脚本,该脚本git diff以其开头并最终将其传递给它git apply
您可以使用以下方式显示未跟踪的文件git ls-files:
$ git ls-files -o
Run Code Online (Sandbox Code Playgroud)
-o是用于显示other类型文件的标志,表示未编入索引的任何内容.请参阅git-scm.com上的ls-files文档.
编辑:
这个答案没有直接回答这个问题.
对未跟踪(未编入索引)的文件进行差异化的一个问题是没有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
Run Code Online (Sandbox Code Playgroud)
基本上,您需要将所有文件添加到git索引,以便能够在更改上生成差异和补丁.
这会将未跟踪的文件添加到索引中,因此您必须在完成差异后自己记住并取消它们.