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

Может ли git работать в "бесшумном режиме"?

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

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

Ниже приведен быстрый script, который выполняет автоматическую фиксацию 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

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

4b9b3361

Ответ 1

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

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

    if ! git "[email protected]" </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" и т.д. Позже в script.

Ответ 2

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

git commit --quiet
git push --quiet

Ответ 3

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

git fetch origin master &> /dev/null

Ответ 4

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

Не больше, начиная git 2.1.1 (сентябрь 2014): см. совершить 6fceed3bea59d747c160972c67663e8b8c281229 от Nguyễn Thái Ngọc Duy (pclouds)

fetch: silence 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);