Может ли git работать в "тихом режиме"? - PullRequest
89 голосов
/ 20 января 2012

Можно ли выполнить какую-либо команду git в "тихом" режиме?Например, могу ли я сказать «git push origin» и ничего не видеть на экране?

Полагаю, я могу перенаправить IO на /dev/null (работает нормально), но ... git допускает что-то подобное, естественно?

Ниже приведен быстрый скрипт, который выполняет автоматическую фиксацию EOD, используемый, когда мне нужно сесть на поезд и не хочу оставлять код на моем локальном компьютере

  1 clear
  2
  3 cd
  4 cd repo/active
  5
  6 for i in *
  7 do
  8   cd $i
  9   echo "Pushing " $i
 10   git add . -A >> /dev/null 
 11   git commit -a -m "EOD automatic commit" >> /dev/null 
 12   git push origin >> /dev/null 
 13   echo
 14   cd ..
 15 done

Пожалуйста, дайте мнезнаю.

Ответы [ 4 ]

202 голосов
/ 20 января 2012

Вы можете использовать --quiet или -q, что также можно использовать для других команд Git:

git commit --quiet
git push --quiet
17 голосов
/ 20 января 2012

Перенаправление вывода в / dev / null кажется мне естественным способом сделать это.Хотя в прошлом я определил функцию оболочки quiet_git, подобную этой, для использования в заданиях cron:

quiet_git() {
    stdout=$(tempfile)
    stderr=$(tempfile)

    if ! git "$@" </dev/null >$stdout 2>$stderr; then
        cat $stderr >&2
        rm -f $stdout $stderr
        exit 1
    fi

    rm -f $stdout $stderr
}

Это подавит stdout и stderr, если команда git не завершится неудачно.Это не красиво;на самом деле файл stdout игнорируется, и он должен просто перенаправить его в / dev / null.Работает, правда.А затем вы можете просто выполнить "quiet_git push" и т. Д. Позже в сценарии.

13 голосов
/ 18 октября 2015

Использование &> /dev/null в конце дает совершенно бесшумный вывод команды git.

git fetch origin master &> /dev/null
5 голосов
/ 26 октября 2014

Обратите внимание, что даже с --quiet, a git fetch (который вызывает git gc) будет генерировать некоторый вывод.
Это из-за git gc часть git fetch.

Больше не существует, начиная с git 2.1.1 (сентябрь 2014 г.): см. commit 6fceed3bea59d747c160972c67663e8b8c281229 из Нгуен Тхай Нгюк Дуй(pclouds)

извлечение: тишина git-gc, если задано --quiet

builtin/fetch.c:

argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL);
if (verbosity < 0)
argv_array_push(&argv_gc_auto, "--quiet");
run_command_v_opt(argv_gc_auto.argv, RUN_GIT_CMD);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...