Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get 'git status' to always use short format?

Tags:

git

zsh

status

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?

like image 559
Adam Lindberg Avatar asked May 28 '10 08:05

Adam Lindberg


People also ask

How do I use git status?

To check the status, open the git bash, and run the status command on your desired directory. It will run as follows: $ git status.

What is git status porcelain?

Porcelain Format Version 1 Version 1 porcelain format is similar to the short format, but is guaranteed not to change in a backwards-incompatible way between Git versions or based on user configuration. This makes it ideal for parsing by scripts.

What does git status tell you?

The git status command displays the state of the working directory and the staging area. It lets you see which changes have been staged, which haven't, and which files aren't being tracked by Git.


2 Answers

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 variable status.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" when status.short is set, and also "git status --porcelain" output is affected by status.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

like image 87
VonC Avatar answered Oct 20 '22 22:10

VonC


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.

like image 29
William Pursell Avatar answered Oct 20 '22 23:10

William Pursell