2013-08-15 11 views
9

ich die Tab-Taste verpasst, bevor sie auf meinem lokalen git branch enter, landete ich ausführen:Was Befehl mit hat git do "git reset --har"

git reset --har 

im Vergleich zu dem beabsichtigten

git reset --hard 

In der Regel beschwert sich git, wenn ein Befehl ausgeführt wird, der falsch geschrieben zu sein scheint. Ich schaute durch die --help für git reset und fand keine Argumente für "h", "a", "r".

Es scheint, den harten Reset ausgeführt zu haben, Was hat es tatsächlich ausgeführt? Oder wenn es "hart" lief, warum?

Zusatzinfo: sylvesterjakubowski $ git --version git Version 1.7.12.4 (Apple-Git-37) #on Berglöwen.

Antwort

6

Dies ist gemäß der gitcli doc Seite:

viele Befehle erlauben eine lange Option „--option“ nur ihren einzigartigen Präfix abgekürzt werden (zB wenn gibt es keine andere Option, dessen Namen beginnt mit "opt", Sie können möglicherweise "--opt" buchstabieren, um das Flag "--option" aufzurufen, aber Sie sollten sie vollständig ausschreiben, wenn Sie Ihre Skripte schreiben; spätere Versionen von Git können eine neue Option einführen, deren Name das gleiche Präfix teilt, z. "--optimize", um ein kurzes Präfix zu erstellen, das früher eindeutig war und nicht länger eindeutig ist.

Auch auf der gleichen Seite:

Befehle, die die erweiterte Option Parser akzeptiert eindeutiges Präfix einer langen Option unterstützen, als ob sie vollständig ausgeschrieben, sondern verwenden Sie diese mit einem Vorsicht. Zum Beispiel verhält sich git commit --amen so, als ob Sie git commit --amend eingegeben hätten, aber das ist nur wahr, bis eine spätere Version von Git eine andere Option einführt, die das gleiche Präfix hat, zB `git commit --amenity ' Option.

Also ja, es lief git reset --hard

3

Es wurde nicht das Äquivalent von -h -a -r ausgeführt, da es zwei vorangehende Bindestriche gibt, nicht eins.

Git implementiert hier möglicherweise einen Algorithmus, damit Sie die kürzeste eindeutige Übereinstimmung für einen langen Flagnamen verwenden können. Da keine langen Flags für git reset mit --har beginnen, könnte es die Anfrage dann als eindeutig behandelt haben und git reset --hard ausgeführt haben.

+2

Ja, git tut dies. – amalloy

Verwandte Themen