我正在寻找一个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和Cygwin运行Bash。
其中任何一个都应该提供您想要的:
git diff --numstat
git diff --stat