2015-10-21 38 views
1

使用git diff時,它只顯示已被跟蹤的文件。有沒有辦法顯示未跟蹤的文件以及差異?我們的目標是獲得一個Git補丁,也包含了這一點,即我已經與git diff,最終管它git apply將未跟蹤文件顯示爲git diff

+2

你有沒有在SO上搜索文章[像這樣](http://stackoverflow.com/questions/855767/can-i-use-git-diff-on-untracked-files)? –

回答

3

啓動腳本,您可以顯示未跟蹤文件與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的索引能夠產生的變化diff和補丁。

這會將未跟蹤文件添加到索引中,因此在完成差異後,您必須自己記住並取消它們。

+2

有用...但不回答問題。它列出了這些文件,但沒有顯示OP正在查找的文件的差異*。此外,它還列出了.gitignored文件,這可能不是您在查看或未記錄文件時想要的內容。 –

+0

同意上述評論。 'git ls-files -o --exclude-standard | xargs git add; git diff --staged'可以做到這一點,但是你必須在之後取消這些文件。 – philraj

+1

@DavidHempy啊是的,現在注意到了這一點。這裏的問題將變成這樣,因爲未跟蹤的文件沒有索引,所以沒有可用的差異數據。 philraj爲此提供了一個建議。我將編輯答案以使其更清楚。 – ojrask

相關問題