简体   繁体   中英

Suppressing diffs for deleted files in git

I want to get a quick overview of the local changes in my repository, but I don't want a diff that shows deleted files, since every single line is a minus.

Basically, I want something like 'git diff HEAD <list of modified files only>' . In an ideal world, it would be preceded by the list of deleted and added files, but not show the diffs within them.

I was most of the way through writing a utility that does this:

git diff HEAD `git status | grep modified | cut -d : -f 2`

when I wondered if there was some git-y way to do it instead. Is there a flag I'm missing? I'd love to preserve the color output, too.

In Git versions 1.8.5 and newer, you can do this using the --diff-filter option and specifying "d" (lowercase) to tell it to exclude deleted files.

$ git diff --diff-filter=d

In Git versions older than 1.8.5, you can do this with the --diff-filter option and specifying all but the "D" (deleted) criteria:

$ git diff --diff-filter=ACMRTUXB

git diff -D (or equivalently git diff --irreversible-delete ) will omit the diff body for deleted files. I don't think there's an equivalent for added files.

张贴几乎相同的答案Dan Moulding ,但你可能要指定你想要的东西来展示,并隐藏删除的文件将是:

git diff --diff-filter=d

You also may use -M which try to find files that was moved

git diff -M -D 

more may get more info with: git diff --help (option -B also could be interesting)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM