Как я могу получить «git status», чтобы всегда использовать короткий формат? - PullRequest
38 голосов
/ 28 мая 2010

Я бы хотел, чтобы git status всегда использовал короткий формат:

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

Кажется, для этого не существует параметра конфигурации, и git config --global alias.status "status --short" не работает. Мне также не удалось создать псевдоним в zsh .

Как мне сделать git status для использования краткого формата по умолчанию?

Ответы [ 4 ]

34 голосов
/ 24 июня 2013

Начиная с git1.8.4 (июль 2013 г.) , вы можете настроить git status на использование short по умолчанию.
См. commit 50e4f757f4adda096239c1ad60499cf606bf2c6f :

Некоторые люди всегда запускают 'git status -s'.
Переменная конфигурации status.short позволяет установить ее по умолчанию.

Итак:

git config status.short true

И с тобой все будет готово!


Бен Оллред добавляет в комментарии :

Быстрый тест показывает, что git config status.branch true также работает, чтобы показать информацию о ветвлении в сочетании с коротким форматом.


Какое-то время было наоборот:

Commit 908a0e6b98e5a7c4b299b3643823bdefb4fa512e :

Это делает невозможным "git commit", когда установлено status.short, а также на git status --porcelain влияет выход status.branch.

Но теперь он вернулся, все еще для git 1.8.4 (июль / август 2013)

См. commit f0915cbaf476d63f72c284057680809ed24fbe0d :

commit: заставить работать с status.short

С установленным «status.short» теперь невозможно зафиксировать с установленным status.short, потому что он действует как «git commit --short», и невозможно провести различие между status_format, установленным анализатором параметров командной строки по сравнению с установленным парсером конфигурации.

Чтобы устранить эту проблему, очистите status_format, как только анализатор конфигурации завершит свою работу.

Подписано: Рамкумар Рамачандра

34 голосов
/ 28 мая 2010

Используйте другой псевдоним. Вместо того чтобы пытаться использовать псевдоним «status», выполните:

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

Теперь "git s" дает вам короткий вывод, а "git status" дает Вы долго выводите.

7 голосов
/ 28 мая 2010

Самый простой способ - использовать другой псевдоним, как я предлагаю в своем комментарии. Я думаю, что нет способа создать псевдоним с именем встроенной команды. Если вы настаиваете на использовании 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
0 голосов
/ 28 мая 2010

Вы можете создать псевдоним .

Но я бы создал скрипт bash:

#!/bin/bash
git status --short

сохраните этот скрипт в ~/bin/gits (или /usr/bin/gits и chmod 555), поэтому, набрав gits, вы получите то, что хотите.

...