【发布时间】:2014-01-07 14:39:44
【问题描述】:
我正在寻找一个 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。
【问题讨论】: