Can git operate in “silent mode”?

前端 未结 4 1545
借酒劲吻你
借酒劲吻你 2020-12-01 11:45

Is it possible to execute any git command in \"silent\" mode? For instance, can i say \"git push origin\" and see nothing displayed on the screen?

I sup

相关标签:
4条回答
  • 2020-12-01 12:06

    Redirecting output to /dev/null seems like a natural way of doing it to me. Although I have in the past defined a quiet_git shell function like this for use in cron jobs:

    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
    }
    

    This will suppress stdout and stderr, unless the git command fails. It's not pretty; in fact the stdout file is ignored and it should just redirect that to /dev/null. Works, though. And then you can just do "quiet_git push" etc. later on in the script.

    0 讨论(0)
  • 2020-12-01 12:15

    You can use --quiet or -q, which can also be used for other Git commands:

    git commit --quiet
    git push --quiet
    
    0 讨论(0)
  • 2020-12-01 12:22

    Using &> /dev/null at the end gives you a completely silent git command output.

    git fetch origin master &> /dev/null
    
    0 讨论(0)
  • 2020-12-01 12:22

    Note that even with --quiet, a git fetch (which triggers a git gc) would generate some output.
    That is because of the git gc part of the git fetch.

    Not anymore, starting git 2.1.1 (Sept 2014): see commit 6fceed3bea59d747c160972c67663e8b8c281229 from Nguyễn Thái Ngọc Duy (pclouds)

    fetch: silence git-gc if --quiet is given

    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);
    
    0 讨论(0)
提交回复
热议问题