有没有办法在一次运行中合并运行git diff --numstat
和git diff --name-status
的输出?
我的问题是,如果我只使用--numstat
,那么我不知道是否只是在文件中添加了一些新行,或者文件是否全新。使用--name-status
时,如果文件是新的,我会得到信息,但缺少关于行修改的统计信息。
目前我的解决方法是单独运行两个命令,然后通过PowerShell脚本合并该输出,但由于repo相当大,我希望首先获得所需的输出。在此先感谢您的帮助!
答案 0 :(得分:3)
您可以合并--numstat
和--summary
标志;
git diff --numstat --summary
请注意,新文件不能位于“未暂存”区域;所以假设您使用了“git add”和“git rm”,那么您的git状态将如下所示:
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
# deleted: a
然后使用
git diff --cached --numstat --summary
会给你:
540 0 b
0 3 a
create mode 100644 b
delete mode 100644 a
注意:您可以将--numstat
和--summary
标记与git diff
,git diff --cached
,git show
和可能是其他命令。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用--diff-filter=A
选项仅获取新文件,并使用--diff-filter=a
进行其他更改:
git diff --numstat --diff-filter=A
git diff --numstat --diff-filter=a