Start: git 1.8.5 (Q4 2013) können Sie "einen Git-Befehl verwenden, ohne Verzeichnisse wechseln zu müssen".
Genau wie " make -C <directory>
", " git -C <directory> ...
" sagt Git, dass sie dorthin gehen soll, bevor sie etwas anderes tut .
Véase 44e1e4 festlegen por Nazri Ramliy :
Es sind mehr Tastendrücke erforderlich, um den Git-Befehl in einem anderen Verzeichnis aufzurufen, ohne das aktuelle Verzeichnis zu verlassen:
(cd ~/foo && git status) git --git-dir=~/foo/.git --work-tree=~/foo status GIT_DIR=~/foo/.git GIT_WORK_TREE=~/foo git status
(cd ../..; git grep foo)
for d in d1 d2 d3; do (cd $d && git svn rebase); done
Die oben gezeigten Methoden sind für die Skripterstellung akzeptabel, aber zu umständlich für schnelle Befehlszeilenaufrufe.
Mit dieser neuen Option können die oben genannten Aufgaben mit weniger Tastenanschlägen erledigt werden:
git -C ~/foo status
git -C ../.. grep foo
for d in d1 d2 d3; do git -C $d svn rebase; done
Seit Git 2.3.4 (März 2015), und Übergabe 6a536e2 por Karthik Nayak ( KarthikNayak
) , git
behandelt " git -C '<path>'
" als eine kein Problem, wenn <path>
leer ist.
' git -C ""
' stirbt hilfslos mit dem Fehler " Cannot change to ''
", während die Shell cd ""' als No-op behandelt.
Das Verhalten der Muschel als Präzedenzfall nehmen und unterrichten git
-C ""' ebenfalls als No-op zu behandeln.
4 Jahre später, Git 2.23 (Q3 2019) dokumentiert, dass git -C ""
' funktioniert und wechselt das Verzeichnis nicht
Es verhält sich so seit 6a536e2 ( git
: behandeln " git -C '<path>'
" als ein No-op, wenn <path>
ist leer, 2015-03-06, Git v2.3.4).
Das bedeutet die Dokumentation umfasst nun (endlich):
Wenn ' <path>
' vorhanden, aber leer ist, z. B. -C ""
wird das aktuelle Arbeitsverzeichnis unverändert beibehalten.
Sie können sehen git -C
verwendet mit Git 2.26 (Q1 2020), als Beispiel.
Véase Übergabe b441717 , Commit 9291e63 , Commit 5236fce , Übergabe 10812c2 , 62d58cd festlegen , Übergabe b87b02c , Commit 9b92070 , 3595d10 festlegen , Übergabe f511bc0 , f6041ab übertragen , Übergabe f46c243 , 99c049b festlegen , Commit 3738439 , 7717242 übertragen , Übergabe b8afb90 (20. Dezember 2019) von Denton Liu ( Denton-L
) .
(Zusammengefasst von Junio C. Hamano -- gitster
-- en 381e8e9 übertragen , 05. Februar 2020)
t1507
: inline full_name()
Abgezeichnet von: Denton Liu
Vorher liefen wir test_must_fail full_name
. Allerdings, test_must_fail
sollte nur für Git-Befehle verwendet werden.
Inline full_name()
so dass wir test_must_fail
über die git
Befehl direkt.
Wenn full_name()
wurde eingeführt in 28fb84382b ("Vorstellen <branch>@{upstream}
notation", 2009-09-10, Git v1.7.0-rc0 -- zusammenführen ), die git -C
noch nicht verfügbar war (da sie erst in 44e1e4d67d (" git
: run in a directory given with -C option", 2013-09-09, Git v1.8.5-rc0 -- zusammenführen aufgeführt in Los Nr. 5 )).
Mit der Hilfsfunktion entfällt die Notwendigkeit, manuell cd
jedes Mal. Da jedoch git -C
jetzt verfügbar ist, können wir das stattdessen verwenden und inline full_name()
.