我有一個包含git diff
輸出的補丁文件。我想獲得所有文件的摘要,根據補丁文件,這些文件已被添加或修改。我可以用什麼命令來實現這個目標?如何獲得diff中包含的文件列表?
3
A
回答
12
patchutils
包括lsdiff
實用程序。
2
grep '+++' mydiff.patch
似乎是伎倆。我可以使用git diff --names-only
這可能是更好的方法。
1
grep '+++' mydiff.patch|perl -pe 's/\+\+\+ //g'
詳情:
git的差異格式產生輸出
+++ b/file
所以,如果你用grep彌敦道建議
grep '+++' mydiff.patch
你必須列表受影響的文件,由'+++'(3加號和一個空格)前綴。
我經常需要進一步處理文件,並且發現每行只有一個文件名而沒有其他任何文件很方便。這可以通過以下命令來實現,其中perl/regex刪除這些加號和空格。
grep '+++' mydiff.patch|perl -pe 's/\+\+\+ //g'
對於用Diff -Naur產生,所述mydiff.patch文件包含文件名和日期條目補丁文件(正指示製表空白字符)
+++ b/file<tab>2013-07-03 13:58:45.000000000 +0200
爲了提取該文件名,使用
grep '+++' mydiff.patch|perl -pe 's/\+\+\+ (.*)\t.*/\1/g'
相關問題
- 1. subversion diff包含新文件
- 2. 如何獲得包含任何NA字段的列的列表?
- 3. 在SVN中包含新文件diff
- 4. 我如何獲得不包含列表中的數據?
- 5. 如何獲得包含條件的值?
- 6. 如何獲得包含在另外兩個列表中的元素的列表?
- 7. 獲得價值包含的JavaScript文件
- 8. 如何獲得列表的非包含子集?
- 9. 如何獲得Ant文件集中所有文件的列表
- 10. C# - 獲取不包含隱藏文件的文件列表
- 11. 如何在Python中移動文件列表(列表包含路徑+文件名)?
- 12. 獲取壓縮文件中包含的文件的文件列表
- 13. 如何獲取包含列表
- 14. 如何獲取SharpSVN中已更改文件的列表(如svn diff --summarize --xml)
- 15. R中如何獲得包含在列表中值的行,創造數
- 16. 如何獲得某個目錄中所有文件的列表,其中包含我提供的字母?
- 17. 從Msi,如何獲取包含在每個功能中的文件列表?
- 18. 不包含模式的列表文件
- 19. 如何列出包含頭文件中的所有文件
- 20. 如何打開(作爲列表)Python中包含列表的文件?
- 21. 如何獲得排序集上的DIFF
- 22. 獲取項目中每個文件包含的所有頭文件的列表
- 23. 如何獲得文件大小小於500mb的文件列表?
- 24. 如何獲得CVS的變化列表中的新文件
- 25. 提取列值包含在列表中的文件中的行?
- 26. Python Difflib - 如何獲得像PHP Diff類型的diff sequneces
- 27. 正則表達式:如何獲得文件名稱包含小時13至20
- 28. Java - 如何獲得已安裝的RPM軟件包列表
- 29. 如何在java中獲得一個包含流的文件夾的內容?
- 30. 如何獲得我的包含文件在vb.net 2005中的路徑?
太糟糕了,它不是標準補丁或diff包的一部分。 – Saustrup 2014-06-05 12:17:57