Can git operate in "silent mode"?

Solution 1:

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

git commit --quiet
git push --quiet

Solution 2:

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.

Solution 3:

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

git fetch origin master &> /dev/null