I'd like git status
to always use the short format:
$ git status --short
M file1
M dir/file2
?? file_untracked3
?? dir/file_untracked4
There doesn't seem to exist a configuration option for this, and git config --global alias.status "status --short"
does not work. I haven't managed to create an alias in zsh either.
How can I make git status
to use the short format by default?
Starting git1.8.4 (July 2013) , you can configure git status
to use short by default.
See commit 50e4f757f4adda096239c1ad60499cf606bf2c6f :
Some people always run '
git status -s
'.
The configuration variablestatus.short
allows to set it by default.
So:
git config status.short true
And you would be all set!
Ben Allred adds in the comments :
A quick test shows that
git config status.branch true
works as well, to show the branch information in conjunction with short-format.
It was reversed for a time:
Commit 908a0e6b98e5a7c4b299b3643823bdefb4fa512e :
It makes it impossible to "
git commit
" whenstatus.short
is set, and also "git status --porcelain
" output is affected bystatus.branch
.
But it is now back, still for git 1.8.4 (July/August 2013)
See commit f0915cbaf476d63f72c284057680809ed24fbe0d :
commit: make it work with
status.short
With "
status.short
" set, it is now impossible to commit with status.short set, because it acts like "git commit --short
", and it is impossible to differentiate between a status_format set by the command-line option parser versus that set by the config parser.To alleviate this problem, clear
status_format
as soon as the config parser has finished its work.Signed-off-by: Ramkumar Ramachandra
Use a different alias. Instead of trying to alias 'status', do:
git config --global alias.s 'status --short'
Now "git s" gives you short output, and "git status" gives you long output.
The easiest way is to use another alias, as I suggest in my comment. I think there is no way to create an alias with the name of a built-in command. If you insist on using git status
, another option is (git is open source after all):
builtin/commit.c
int cmd_status(int argc, const char **argv, const char *prefix)
switch-statement
code:
...
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;
}
...
You may create an alias .
But I'd create bash script:
#!/bin/bash
git status --short
save this script in ~/bin/gits
(or /usr/bin/gits
and chmod 555
), so typing gits
gives what you want.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.