是否可以在"静音"模式下执行任何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
Run Code Online (Sandbox Code Playgroud)
请告诉我.
Tho*_*rds 213
您可以使用--quiet
或-q
,也可以用于其他Git命令:
git commit --quiet
git push --quiet
Run Code Online (Sandbox Code Playgroud)
ara*_*nid 18
将输出重定向到/ dev/null似乎是对我这样做的一种自然方式.虽然我在过去定义了一个这样的quiet_git shell函数用于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
}
Run Code Online (Sandbox Code Playgroud)
这将禁止stdout和stderr,除非git命令失败.它不漂亮; 事实上,stdout文件被忽略,它应该只是重定向到/ dev/null.尽管如此.然后你可以稍后在脚本中执行"quiet_git push"等操作.
Han*_*ian 13
&> /dev/null
在最后使用为您提供完全静默的git命令输出.
git fetch origin master &> /dev/null
Run Code Online (Sandbox Code Playgroud)
请注意,即使使用 --quiet
,a git fetch
(触发a git gc
)也会产生一些输出.
那是因为git gc
部分原因git fetch
.
现在不一样了,开始git的2.1.1(9月2014):看提交6fceed3bea59d747c160972c67663e8b8c281229从 阮泰玉维战(pclouds
)
git-gc
如果--quiet
给出沉默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);
Run Code Online (Sandbox Code Playgroud)