使用git diff
時,它只顯示已被跟蹤的文件。有沒有辦法顯示未跟蹤的文件以及差異?我們的目標是獲得一個Git補丁,也包含了這一點,即我已經與git diff
,最終管它git apply
將未跟蹤文件顯示爲git diff
回答
啓動腳本,您可以顯示未跟蹤文件與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和補丁。
這會將未跟蹤文件添加到索引中,因此在完成差異後,您必須自己記住並取消它們。
有用...但不回答問題。它列出了這些文件,但沒有顯示OP正在查找的文件的差異*。此外,它還列出了.gitignored文件,這可能不是您在查看或未記錄文件時想要的內容。 –
同意上述評論。 'git ls-files -o --exclude-standard | xargs git add; git diff --staged'可以做到這一點,但是你必須在之後取消這些文件。 – philraj
@DavidHempy啊是的,現在注意到了這一點。這裏的問題將變成這樣,因爲未跟蹤的文件沒有索引,所以沒有可用的差異數據。 philraj爲此提供了一個建議。我將編輯答案以使其更清楚。 – ojrask
- 1. git status - 不顯示未跟蹤文件
- 2. git diff相對於包含未跟蹤文件的工作樹
- 3. 爲什麼Git將.gitignore文件的內容顯示爲未跟蹤?
- 4. 將跟蹤的文件移動到未跟蹤的git
- 5. 爲什麼git clean --dry-run比git status顯示更多未跟蹤的文件?
- 6. 什麼是GIT中的跟蹤文件和未跟蹤文件?
- 7. 讓git不要顯示未跟蹤文件
- 8. 如何'git status'顯示未跟蹤目錄的內容/文件?
- 9. 在JetBrains intellij中顯示未跟蹤的文件git
- 10. Git狀態顯示更高級別的未跟蹤文件?
- 11. git status與git diff在內部的工作方式有何不同,以顯示未跟蹤的文件?
- 12. Git。更新未跟蹤文件
- 13. Git忽略未跟蹤文件
- 14. Git和Xcode的 - 未跟蹤文件
- 15. Git commit -a「未跟蹤文件」?
- 16. Git的狀態報告的跟蹤文件未經跟蹤
- 17. .gitignore文件在未跟蹤文件下顯示在git狀態下
- 18. 使git狀態顯示未修改/未更改的跟蹤文件?
- 19. git diff不能處理跟蹤文件中的未分期更改
- 20. Git跟蹤未追蹤的文件,但未添加到提交
- 21. 將未跟蹤的文件夾合併到已跟蹤的Git存儲庫
- 22. git diff也應該顯示文件名
- 23. 如何告訴`git diff <commit>`來區分曾經在'<commit>`中被跟蹤的未跟蹤文件?
- 24. 混帳克隆隨後狀態顯示爲未跟蹤文件
- 25. 交互合併文件跟蹤與git和未跟蹤本地文件
- 26. GIT沒有跟蹤文件
- 27. git clean只跟蹤文件
- 28. Git沒有跟蹤文件
- 29. git的承諾表示未跟蹤文件
- 30. Git Diff顯示未刪除的文件(帶「 - 」)
你有沒有在SO上搜索文章[像這樣](http://stackoverflow.com/questions/855767/can-i-use-git-diff-on-untracked-files)? –