我可以让git diff只显示更改的文件名和行号吗?

wei*_*wei 242 git git-diff

基本上,我不希望看到更改的内容,只是文件名和行号.

phr*_*ead 749

太简单:

git diff --name-only
Run Code Online (Sandbox Code Playgroud)

出去和差异!

  • 这可能是大多数人在查看此页面时所寻找的答案(这对我而言).但是,它没有回答原始问题,具体提到行号. (73认同)
  • 这不应该是可接受的答案,因为它只解决了一半的问题 - 您仍然需要输出哪些行(对于每个文件)已更改. (9认同)
  • @JimmyPaul,因为有时你已经做出了承诺。例如,您需要列出 master 和当前高级分支 `git diff --name-only master..HEAD` 之间更改的文件 (2认同)

Thi*_*ter 63

行号如更改行数或包含更改的实际行号?如果您想要更改的行数,请使用git diff --stat.这给你一个这样的显示:

[me@somehost:~/newsite:master]> git diff --stat
 whatever/views/gallery.py |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
Run Code Online (Sandbox Code Playgroud)

没有选项可以自行获取更改的行号.


tor*_*rek 62

注意:如果你只是寻找名字的更改的文件(没有行号已更改为线),这很容易,请点击此链接到这里另一个答案.


有这个没有内置的选项(我不认为这一切都让有用其一),但它有可能做到这一点的混帐,与"外部差异"脚本的帮助.

这是一个非常糟糕的一个; 您可以按照自己喜欢的方式修改输出.

#! /bin/sh
#
# run this with:
#    GIT_EXTERNAL_DIFF=<name of script> git diff ...
#
case $# in
1) "unmerged file $@, 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 '^[<>-]'
Run Code Online (Sandbox Code Playgroud)

有关"外部差异"详情,请参阅的说明GIT_EXTERNAL_DIFFgit的手册页(左右线700,相当接近结束).


Fei*_*ira 20

1)我的最爱:

git diff --name-status
Run Code Online (Sandbox Code Playgroud)

前置文件状态,例如:

A   new_file.txt
M   modified_file.txt 
D   deleted_file.txt
Run Code Online (Sandbox Code Playgroud)

2)如果你想要统计,那么:

git diff --stat
Run Code Online (Sandbox Code Playgroud)

将显示如下内容:

new_file.txt         |  50 +
modified_file.txt    | 100 +-
deleted_file         |  40 -
Run Code Online (Sandbox Code Playgroud)

3)最后,如果你真的只想要文件名:

git diff --name-only
Run Code Online (Sandbox Code Playgroud)

将简单地显示:

new_file.txt
modified_file.txt
deleted_file
Run Code Online (Sandbox Code Playgroud)


Sei*_*tov 14

git diff master --compact-summary

输出为:

 src/app/components/common/sidebar/toolbar/toolbar.component.html   |  2 +-
 src/app/components/common/sidebar/toolbar/toolbar.component.scss   |  2 --
Run Code Online (Sandbox Code Playgroud)

这正是您所需要的。与您进行提交或从远程提取新提交时的格式相同。

PS:这说明没有人回答。

  • 这没有具体说明。它从一年前发布的 2.18 开始运行。 (2认同)

mas*_*ilo 5

显示从现在到指定提交之间每个文件中更改的文件名和行数/行数:

git diff --stat <commit-hash>
Run Code Online (Sandbox Code Playgroud)