2012-03-24 261 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 
相关问题