¿Cómo puedo get el 'estado de git' para usar siempre formatting corto?

Me gustaría que el git status siempre use el formatting corto:

 $ git status --short M file1 M dir/file2 ?? file_untracked3 ?? dir/file_untracked4 

No parece existir una opción de configuration para esto, y git config --global alias.status "status --short" no funciona. No he podido crear un alias en zsh tampoco.

¿Cómo puedo hacer que git status use el formatting corto de forma pnetworkingeterminada?

Al iniciar git1.8.4 (julio de 2013) , puede configurar el git status para usar brevemente de manera pnetworkingeterminada.
Consulte commit 50e4f757f4adda096239c1ad60499cf606bf2c6f :

Algunas personas siempre ejecutan ' git status -s '.
La variable de configuration status.short permite establecerlo de forma pnetworkingeterminada.

Asi que:

 git config status.short true 

¡Y estarías listo!


Ben Allnetworking agrega en los comentarios :

Una testing rápida muestra que git config status.branch true funciona, para mostrar la información de la twig junto con el formatting corto.


Se revirtió por un time:

Confirmar 908a0e6b98e5a7c4b299b3643823bdefb4fa512e :

Hace que sea imposible " git commit " cuando se establece status.short , y también el git status --porcelain " git status --porcelain " se ve afectado por status.branch .

Pero ahora está de vuelta, todavía para git 1.8.4 (julio / agosto de 2013)

Ver commit f0915cbaf476d63f72c284057680809ed24fbe0d :

commit: haz que funcione con status.short

Con " status.short " establecido, ahora es imposible confirmar con status.short set, ya que actúa como " git commit --short ", y es imposible diferenciar entre un formatting de estado establecido por el analizador de la opción de command-line versus eso establecido por el analizador de configuration.

Para solucionar este problema, borre el status_format tan pronto como el analizador de configuration haya terminado su trabajo.

Firmado fuera de lugar: Ramkumar Ramachandra

Usa un alias diferente En lugar de intentar alias 'estado', hacer:

 git config --global alias.s 'status --short'

Ahora "git s" le da salida corta, y "estado de git" le da salida larga.

La forma más fácil es usar otro alias, como sugiero en mi comentario. Creo que no hay forma de crear un alias con el nombre de un command integrado. Si insiste en usar el git status , otra opción es (git es de código abierto después de todo):

  • get el código fuente de git (por ejemplo, http://github.com/git/git/ )
  • abra el file builtin/commit.c
  • busque la function int cmd_status(int argc, const char **argv, const char *prefix)
  • en la parte inferior se encuentra una switch-statement
  • comente las dos líneas como se muestra en el siguiente código
  • agregue la línea como en el siguiente código

código:

 ... 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; } ... 
  • remake git

Usted puede crear un alias .

Pero crearía el script bash:

 #!/bin/bash git status --short 

guarde esta secuencia de commands en ~/bin/gits (o /usr/bin/gits y chmod 555 ), por lo que al escribir gits obtiene lo que desea.