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
请注意,即使使用 --quiet
, git fetch
(会触发git gc
)也会产生一些输出。
那是因为git gc
的git 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);