Da git 2.0, git add -A
und git add -A :/
sind bitte gleich.
Aber die magische pathspec :/
ist nicht neu und stammt aus git 1.7.6 (Apr 2011). Siehe commit 8a42c98. Es ist dokumentiert, in Documentation/glossary-content.txt
Eine Pfadangabe, die mit einem Doppelpunkt beginnt :
besondere Bedeutung hat.
In der Kurzform, der führende Doppelpunkt :
wird gefolgt von Null oder mehr "magische Signatur" Buchstaben (die optional durch einen anderen Doppelpunkt :
abgeschlossen ist), und der Rest ist das Muster gegen den Pfad.
:top: or :/
Das Zauberwort top
(Magie Unterschrift: /
) macht die Mustererkennung von der Wurzel des Baumes arbeiten, auch wenn Sie den Befehl ausführen aus dem Inneren eines Unterverzeichnis.
Beachten Sie, dass, wenn Sie einen Ordner hinzufügen möchten namens ':/
' (git add -A :/
), dies möglich sein wird, nur in git 2,7 (Nov 2015)
Siehe commit 29abb33 (25. Oktober 2015) von Junio C Hamano (gitster
).
Seit Git 2.0 „add -u
“ und „add -A
“ run aus einem Unterverzeichnis ohne Pfadangabe bedeutet „alles in der Arbeits Baum“ (vor 2.0 wurden sie in das aktuelle Verzeichnis begrenzt).
Die Beschränkung auf das aktuelle Verzeichnis wurde implementiert, indem ".
" in die Befehlszeile eingefügt wurde, wenn der Endbenutzer keine Pfadangabe angegeben hatte.
Bei 2.0 haben wir den Code aktualisiert, um ":/
" (anstelle von ".
") einzufügen, um alles von der obersten Ebene zu betrachten, indem ein pathspec magic "top
" verwendet wird.
(Dies wird nicht mehr benötigt, und fixiert, die in dem 29abb33 commit: die Umsetzung von git add -A
länger kein :/
für die kommende git 2.7 verwenden)
übrigens eine derartige Vereinfachung auch eine Ecke Fall Fehler behebt dass davon herrührt, dass ":/
" nicht unbedingt Magie bedeutet.
Ein Benutzer würde sagen "git --literal-pathspecs add -u :/
" über die Befehlszeile, wenn sie ein Verzeichnis ':
' hat und alles darin hinzufügen will (und sie weiß, dass ihre :/
wird als 'alles unter der Sonne' magic pathspec genommen, es sei denn, sie deaktiviert die Magie mit --literal-pathspecs
).
Die interne Verwendung von '' würde sich genauso verhalten wie solch ein explizit angegebenes ": /" bei der Ausführung mit "--literal-pathspecs" und fügt nicht alles unter die Sonne wie ursprünglich vorgesehen.
Da die interne Verwendung von :/
nicht mehr ist, wird ein git --literal-pathspecs add -u :/
tatsächlich funktionieren, und fügen Sie Dateien unter dem Ordner mit dem Namen „Spalte“ (‚:
‘).
http://git-scm.com/docs/gitglossary.html suche nach pathspec :) – shengy