我正在寻找一个Bash命令(或命令序列),它打印Git工作副本中更改的文件的摘要。摘要应包括每个文件中的插入和删除次数,以及它们是否已暂存。
命令git add --interactive
(与git add -i
同义)完全给出了我想要的摘要(以及其他内容)。问题是它不仅仅是打印和退出,它启动了一个完整的非Bash shell。以下是我喜欢的git add -i
部分:
bash$ git add -i
staged unstaged path
1: unchanged +3/-0 trunk/src/analyzer.c
2: unchanged +5/-13 trunk/src/converter.c
这是一个很好的总结。不幸的是,在它打印之后,你不会回到Bash。要返回Bash,您需要输入q
,然后输入,退出。我真的希望它只打印摘要然后停止。
以下是我的尝试:
在Bash终端中键入以下内容:git add -i; q
。这不起作用,它仍然需要您手动按q
,然后由于第二个q
而导致错误。
将以下内容放入脚本gitsummary.sh
中,然后运行它:git add -i
,最后包含或不包含; q
。同样的问题。
如何以完全非交互方式获取此摘要?我可以想到两种可能的解决方案:
使用等待几分之一秒的Bash技巧然后模拟按键。
使用不同的Git命令打印相同的信息,但不会启动一个奇怪的小shell。
我的主要设置:Mac OS X 10.9和终端(运行/ bin / bash)。
我的辅助设置:Windows 7或8以及运行Bash的Cygwin。
答案 0 :(得分:1)
其中任何一个都应该给你你想要的东西:
git diff --numstat
git diff --stat