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

是否有可能在“无声”模式下执行任何git命令? 例如,我可以说“ git push origin ”,并没有看到任何显示在屏幕上?

我想我可以将IOredirect到/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 

请告诉我。

将输出redirect到/ 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文件被忽略,它应该只是redirect到/ dev / null。 虽然,工程。 然后你可以在脚本中稍后执行“quiet_git push”等。

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

 git commit --quiet git push --quiet 

在最后使用&> /dev/null给你一个完全沉默的git命令输出。

 git fetch origin master &> /dev/null 

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

现在不行了 ,开始git 2.1.1(2014年9月):参见NguyễnTháiNgọcDuy( pclouds )的 commit 6fceed3bea59d747c160972c67663e8b8c281229

取:沉默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);