基本上,我不想看到更改的內容,只是文件名和行號。我可以讓git diff只顯示已更改的文件名和行號嗎?
回答
注意:如果你只是尋找名字的更改的文件(沒有的行號爲線已更改),that's easy, click this link to another answer here。
有這個沒有內置的選項(我不認爲這一切都讓有用其一),但它是可能做到這混帳,與「外部差異」的幫助腳本。
這是一個非常糟糕的;這將取決於你如何修改你想要的輸出。
#! /bin/sh
#
# run this with:
# GIT_EXTERNAL_DIFF=<name of script> git diff ...
#
case $# in
1) "unmerged file [email protected], can't show you line numbers"; exit 1;;
7) ;;
*) echo "I don't know what to do, help!"; exit 1;;
esac
path=$1
old_file=$2
old_hex=$3
old_mode=$4
new_file=$5
new_hex=$6
new_mode=$7
printf '%s: ' $path
diff $old_file $new_file | grep -v '^[<>-]'
有關「外部差異」的詳細說明請參閱git manual page(圍繞線700,相當接近的端部)的GIT_EXTERNAL_DIFF
描述。
行數與更改的行數或包含更改的實際行號相同嗎?如果您想要更改的行數,請使用git diff --stat
。這給你一個像這樣的顯示:
[[email protected]:~/newsite:master]> git diff --stat
whatever/views/gallery.py | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
沒有選項可以獲得更改本身的行號。
我正在考慮實際的行數。不過謝謝。 – wei 2012-03-24 01:34:19
'gitk [文件名]' – uday 2012-03-24 02:14:12
我以某種方式懷疑他想要一個GUI工具。 – ThiefMaster 2012-03-24 08:45:59
那麼容易:
git diff --name-only
出去和差異!
太簡單了,太好了。 – Wok 2013-09-19 09:39:03
這可能是大多數人在查看此頁面時所尋找的答案(僅供我參考)。但是,它不回答原來的問題,具體提到行號。 – 2013-12-02 14:27:15
這不應該是被接受的答案,因爲它只能解決一半的問題 - 您仍然需要輸出已更改的哪些行(針對每個文件)。 – adamwong246 2014-01-24 19:12:44
我知道這是一個老問題,但在Windows上,這個過濾的git輸出到文件和改變的線號:
(git diff -p --stat) | findstr "@@ --git"
diff --git a/dir1/dir2/file.cpp b/dir1/dir2/file.cpp
@@ -47,6 +47,7 @@ <some function name>
@@ -97,7 +98,7 @@ <another functon name>
要提取的文件和變更線從是更多的工作:
for /f "tokens=3,4* delims=-+ " %f in ('^(git diff -p --stat .^) ^| findstr ^"@@ --git^"') do @echo %f
a/dir1/dir2/file.cpp
47,7
98,7
- 1. 我可以讓git add -p顯示像git diff --word-diff一樣的變化嗎?
- 2. git diff可以通過命令行更改文件循環嗎?
- 3. 我可以讓git diff忽略權限更改
- 4. git diff也應該顯示文件名
- 5. 我可以更改已簽名的可執行文件
- 6. 我可以在Github diff中顯示更多上下文嗎?
- 7. 我可以讓「git gui」通過,比如說「--patience」改爲「git diff」嗎?
- 8. 如何讓`hg status`只顯示'hg diff`顯示的文件
- 9. 只下載已更改的文件git
- 10. Git diff參數可以改善源代碼更改對齊嗎?
- 11. 如何讓Git顯示更改我的.sql文件?
- 12. 顯示git diff,忽略文件權限更改?
- 13. 我可以強制git diff將文件視爲副本嗎?
- 14. 如何讓winmerge在git中顯示新文件的diff?
- 15. git-diff:只顯示提交的變化
- 16. GIT diff和GIT狀態忽略文件的更改
- 17. 我可以使用XCOPY只複製已更改大小的文件嗎?
- 18. `git stash --patch`顯示的行改變了`git diff` /`git status`沒有顯示
- 19. 我可以讓git bisect顯示縮短提交SHA嗎?
- 20. 我可以讓wireshark只顯示HTTP交換的上層嗎?
- 21. 可以強制svn diff顯示svn cp'd文件嗎?
- 22. pytest只運行已更改的文件?
- 23. 只顯示在修訂中更改的(完整)文件名
- 24. 同時顯示git diff和git狀態
- 25. 我可以讓富文本框顯示控件圖片嗎?
- 26. Emacs:我可以更改已啓動進程的名稱嗎?
- 27. 我可以更改已部署Pod的節點名稱嗎?
- 28. Git狀態不顯示更改,但git diff確實
- 29. 爲什麼「git log --name-only」顯示一個文件更改,但「git diff」顯示更多?
- 30. 我可以只讓我的程序訪問文件夾嗎?
我很好奇,沒有代碼的行號真的有用嗎?或者你想要改變行數? – 2012-03-24 01:27:16
好吧,不是特別的,但我需要它來標記我已更改我的代碼。 – wei 2012-03-24 01:32:25
這樣做的一個用法是將信息與代碼覆蓋率報告結合起來,以評估提交中的新代碼或修改後的代碼是否被測試所覆蓋 – AntonyG 2015-11-20 10:20:11