Подтвердить что ты не робот

Как я могу получить 'git status', чтобы всегда использовать короткий формат?

Я бы хотел, чтобы 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 использовать короткий формат по умолчанию?

4b9b3361

Ответ 1

Запуск git1.8.4 (июль 2013 г.), вы можете настроить git status на использование по умолчанию. См. 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, как только обработчик конфигурации завершит свою работу.

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Вы можете создать alias.

Но я бы создал bash script:

#!/bin/bash
git status --short

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