git可以在“静音模式”下运行吗?

时间:2012-01-20 15:23:39

标签: git

是否可以在“静音”模式下执行任何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 个答案:

答案 0 :(得分:197)

您可以使用--quiet-q,也可以用于其他Git命令:

git commit --quiet
git push --quiet

答案 1 :(得分:17)

将输出重定向到/ dev / null似乎是对我这样做的一种自然方式。虽然我过去在cron作业中定义了一个这样的quiet_git shell函数:

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。尽管如此。然后你可以做&#34; quiet_git push&#34;以后在剧本中。

答案 2 :(得分:13)

最后使用&> /dev/null为您提供完全静默的git命令输出。

git fetch origin master &> /dev/null

答案 3 :(得分:5)

请注意,即使 --quietgit fetch(触发git gc)也会产生一些输出。
这是因为git gcgit fetch部分。

不再,启动git 2。1。1(2014年9月):从commit 6fceed3bea59d747c160972c67663e8b8c281229看{4}}

fetch:如果git-gc被赋予

则沉默--quiet

Nguyễn Thái Ngọc Duy (pclouds)

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);