我怎样才能得到“git status”总是使用短格式?
我希望git status
始终使用短格式:
$ git status --short M file1 M dir/file2 ?? file_untracked3 ?? dir/file_untracked4
似乎没有这样的configuration选项,并且git config --global alias.status "status --short"
不起作用。 我还没有设法在zsh中创build一个别名。
我怎样才能使git status
默认使用短格式?
启动git1.8.4(2013年7月) ,你可以configurationgit status
默认使用short。
参见提交50e4f757f4adda096239c1ad60499cf606bf2c6f :
有些人总是运行'
git status -s
'。
configurationvariablesstatus.short
允许默认设置它。
所以:
git config status.short true
而且你会全部设置!
Ben Allred 在评论中补充道:
一个快速testing显示,
git config status.branch true
可以用来显示分支信息和短格式。
这一次被颠倒过来了:
提交908a0e6b98e5a7c4b299b3643823bdefb4fa512e :
当
status.short
被设置时,它不可能“git commit
”,并且“git status --porcelain
”输出也会受到status.branch
影响。
但现在回来了,仍然是git 1.8.4(2013年7月/ 8月)
见提交f0915cbaf476d63f72c284057680809ed24fbe0d :
提交:使其与
status.short
工作在设置“
status.short
”的情况下,现在不可能使用status.short set,因为它的行为类似于“git commit --short
”,并且不可能区分由命令行选项parsing器设置的status_format与由configurationparsing器设置。为了缓解这个问题,
status_format
configurationparsing器完成其工作,就清除status_format
。签名:Ramkumar Ramachandra
使用不同的别名。 而不是尝试别名'身份',做:
git config --global alias.s'status --short'
现在“git s”给你短的输出,“git status”给你长输出。
最简单的方法是使用别名,正如我在我的评论中所build议的。 我认为没有办法用内置命令的名字创build一个别名。 如果你坚持使用git status
,另一个选项是(git毕竟是开源的):
- 获取git源代码(例如http://github.com/git/git/ )
- 打开
builtin/commit.c
文件 - 寻找函数
int cmd_status(int argc, const char **argv, const char *prefix)
- 在底部你会发现一个
switch-statement
- 如下面的代码所示注释掉这两行
- 如下面的代码添加行
码:
... switch (status_format) { case STATUS_FORMAT_SHORT: wt_shortstatus_print(&s, null_termination); break; case STATUS_FORMAT_PORCELAIN: wt_porcelain_print(&s, null_termination); break; case STATUS_FORMAT_LONG: //s.verbose = verbose; <--lines have to be commented out //wt_status_print(&s); wt_shortstatus_print(&s, null_termination); //<-- line has to be added break; } ...
- 重制git
你可以创build一个别名 。
但是我会创buildbash脚本:
#!/bin/bash git status --short
把这个脚本保存在~/bin/gits
(或者/usr/bin/gits
和chmod 555
)中,这样就可以input你想要的东西了。