Git peut-il fonctionner en “mode silencieux”?

Est-il possible d’exécuter une commande git en mode “silencieux”? Par exemple, puis-je dire ” git push origin ” et ne rien voir à l’écran?

Je suppose que je peux redirect IO vers /dev/null (ça marche bien), mais .. git permet-il quelque chose comme ça naturellement?

Vous trouverez ci-dessous un script rapide qui effectue la validation automatique EOD, utilisé lorsque j’ai besoin d’attraper le train et ne souhaite pas laisser de code sur mon ordinateur local

  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 

S’il vous plaît, faites-moi savoir.

Redirection de la sortie vers / dev / null semble être une manière naturelle de le faire pour moi. Bien que j’ai déjà défini une fonction shell quiet_git comme celle-ci pour les tâches cron:

 quiet_git() { stdout=$(tempfile) stderr=$(tempfile) if ! git "$@" $stdout 2>$stderr; then cat $stderr >&2 rm -f $stdout $stderr exit 1 fi rm -f $stdout $stderr } 

Cela supprimera stdout et stderr, à moins que la commande git échoue. Ce n’est pas joli En fait, le fichier stdout est ignoré et il devrait simplement le redirect vers / dev / null. Fonctionne, cependant. Et puis vous pouvez simplement faire “quiet_git push” etc. plus tard dans le script.

Vous pouvez utiliser --quiet ou -q , qui peut également être utilisé pour d’autres commandes Git:

 git commit --quiet git push --quiet 

L’utilisation de &> /dev/null à la fin vous donne une sortie de commande git complètement silencieuse.

 git fetch origin master &> /dev/null 

Notez que même avec --quiet , un git fetch (qui déclenche un git gc ) génère une sortie.
C’est à cause de la partie git gc de la git fetch .

Plus maintenant , à partir de git 2.1.1 (sept 2014): voir commit 6fceed3bea59d747c160972c67663e8b8c281229 de Nguyễn Thái Ngọc Duy ( pclouds )

chercher: silence git-gc si --quiet est donné

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);