基本上,我不想看到更改的内容,只是文件名和行号。我可以让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