2012-03-24 54 views
136

基本上,我不想看到更改的內容,只是文件名和行號。我可以讓git diff只顯示已更改的文件名和行號嗎?

+0

我很好奇,沒有代碼的行號真的有用嗎?或者你想要改變行數? – 2012-03-24 01:27:16

+0

好吧,不是特別的,但我需要它來標記我已更改我的代碼。 – wei 2012-03-24 01:32:25

+0

這樣做的一個用法是將信息與代碼覆蓋率報告結合起來,以評估提交中的新代碼或修改後的代碼是否被測試所覆蓋 – AntonyG 2015-11-20 10:20:11

回答

40

注意:如果你只是尋找名字的更改的文件沒有行號爲線已更改),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描述。

+1

謝謝。我確實已經寫了一個類似的腳本,在確認沒有內置的選項後,:) – wei 2012-03-25 22:16:07

+0

管道到'| | grep -o'^ [0-9] *''給你一個數字,假設你不關心右邊的數字。 – GKFX 2016-12-13 17:33:03

43

行數與更改的行數或包含更改的實際行號相同嗎?如果您想要更改的行數,請使用git diff --stat。這給你一個像這樣的顯示:

[[email protected]:~/newsite:master]> git diff --stat 
whatever/views/gallery.py | 8 ++++++++ 
1 files changed, 8 insertions(+), 0 deletions(-) 

沒有選項可以獲得更改本身的行號。

+1

我正在考慮實際的行數。不過謝謝。 – wei 2012-03-24 01:34:19

+0

'gitk [文件名]' – uday 2012-03-24 02:14:12

+0

我以某種方式懷疑他想要一個GUI工具。 – ThiefMaster 2012-03-24 08:45:59

464

那麼容易:

git diff --name-only 

出去和差異!

+1

太簡單了,太好了。 – Wok 2013-09-19 09:39:03

+38

這可能是大多數人在查看此頁面時所尋找的答案(僅供我參考)。但是,它不回答原來的問題,具體提到行號。 – 2013-12-02 14:27:15

+7

這不應該是被接受的答案,因爲它只能解決一半的問題 - 您仍然需要輸出已更改的哪些行(針對每個文件)。 – adamwong246 2014-01-24 19:12:44

1

我知道這是一個老問題,但在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 
相關問題