Как я могу получить '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
использовать короткий формат по умолчанию?
Ответы
Ответ 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;
}
...
Ответ 4
Вы можете создать alias.
Но я бы создал bash script:
#!/bin/bash
git status --short
сохраните этот script в ~/bin/gits
(или /usr/bin/gits
и chmod 555
), поэтому ввод gits
дает то, что вы хотите.