Ist es möglich, einen Git-Befehl im "stillen" Modus auszuführen? Zum Beispiel kann ich sagen , „ git push origin
“ und sehe nichts auf dem Bildschirm angezeigt?
Ich nehme an, ich kann IO umleiten /dev/null
(funktioniert gut), aber ... erlaubt Git so etwas natürlich?
Unten finden Sie ein schnelles Skript, das die automatische EOD-Festschreibung durchführt und verwendet wird, wenn ich den Zug erwischen muss und keinen Code auf meinem lokalen Computer hinterlassen möchte
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
Lass es mich wissen, bitte.
Antworten:
Das Umleiten der Ausgabe nach / dev / null scheint mir eine natürliche Methode zu sein. Obwohl ich in der Vergangenheit eine solche quiet_git-Shell-Funktion für die Verwendung in Cron-Jobs definiert habe:
Dadurch werden stdout und stderr unterdrückt, es sei denn, der Befehl git schlägt fehl. Es ist nicht schön; Tatsächlich wird die stdout-Datei ignoriert und sollte nur nach / dev / null umgeleitet werden. Funktioniert aber. Und dann können Sie später im Skript einfach "quiet_git push" usw. ausführen.
quelle
Sie können
--quiet
oder verwenden-q
, was auch für andere Git-Befehle verwendet werden kann:quelle
git pull -q
odergit push origin master --quiet
. Ich bin auf Git 1.8.xgit pull -q origin master > /dev/null
ergibt "Gesamt 4 (Delta 3), wiederverwendete 4 (Delta 3)". Das ist mit Git 2.0.1.git command >/dev/null 2>&1
. Dadurch werden sowohl stdout als auch stderr nach / dev / null umgeleitet. Die--quiet
Optionen sind für die Erzeugung einer prägnanten Ausgabe, nicht für die vollständige Unterdrückung der Ausgabe @AnkurWenn Sie
&> /dev/null
am Ende verwenden, erhalten Sie eine völlig stille Ausgabe des Git-Befehls.quelle
&>
ist ein Bash-IO-Umleitungsoperator. Schauen Sie sich 3.6 hier an tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlBeachten Sie, dass selbst mit
--quiet
agit fetch
(das a auslöstgit gc
) eine Ausgabe erzeugt wird.Das liegt an dem
git gc
Teil dergit fetch
.Nicht mehr ab Git 2.1.1 (September 2014): siehe Commit 6fceed3bea59d747c160972c67663e8b8c281229 von Nguyễn Thái Ngọc Duy (
pclouds
)holen: Schweigen,
git-gc
wenn--quiet
gegeben wirdbuiltin/fetch.c
::quelle