Git Reset fragt "mehr?"


79

Git Windows Kommandozeile, Version 1.8.0

Ich habe bisher 3 Commits und wenn ich tippe

git reset --soft HEAD^

neue Linie kommt mit

More?

und blinkender Cursor zur Eingabe

Was auch immer ich tippe, ich bekomme immer

fatal: mehrdeutiges Argument 'HEAD': unbekannte Revision oder Pfad nicht im Arbeitsbaum. Verwenden Sie '-', um Pfade von Revisionen wie folgt zu trennen: 'git [...] - [...]

Alle anderen Befehle funktionieren problemlos im selben Ordner.


13
Wenn Sie Windows verwenden, können Sie dies tun git log HEAD^^, glaube ich.
Nennen Sie McChange

@NameMcChange Wenn Sie Ihren Kommentar in eine Antwort umwandeln, kann meine Antwort gelöscht werden.
Mcdon

@ Mcdon Nein, Sie können es haben
Name McChange

Um zu vermeiden, dass in git-Befehlen andere Arten von Escapezeichen auftreten, habe ich anstelle der Windows-Eingabeaufforderung git bash verwendet. Git für Windows bietet eine BASH-Emulation, mit der Git über die Befehlszeile ausgeführt wird. Wenn Sie also git für Windows installieren, können Sie Ihre git-Befehle im Git Bash ausführen. Ich bevorzuge dies, weil Sie auf diese Weise verwendet werden, um den Befehl git plattformunabhängig zu schreiben. Ihre Befehle unterscheiden sich nicht von denen, die Sie auf Linux- oder Mac-Computern geschrieben haben.
20.

Antworten:


71

sehen, ob git log HEAD^funktioniert. Wenn dies nicht der Fall ist, liegt möglicherweise etwas an Ihrer Lokalisierung oder Ihrem Terminal. Es scheint das ^Symbol herauszufiltern . Verwenden Sie es git reset --soft HEAD~1jetzt als Problemumgehung .


git log HEAD^wirft genau das gleiche Szenario, obwohl git reset --soft HEAD~1Workaround gut funktioniert
norbertas.gaulia

1
Vielen Dank, Problemumgehung hilft. Mehr verlangt nicht mehr.
Dzmitry Prakapenka

39

Ihre Shell interpretiert das ^Symbol als Zeilenfortsetzungssymbol. Vermeiden Sie es einfach, ^wie Adam vorschlägt :

git reset --soft HEAD~1

oder zitieren Sie das Argument, damit die Shell nicht versucht, es zu interpretieren (ich bin mir nicht sicher, welche Shell Sie genau verwenden, aber ich wäre überrascht, wenn dies nicht funktioniert):

git reset --soft "HEAD^"

Dies ist ziemlich häufig ein Problem :)
Romain

28

Das ^ ist ein Escapezeichen in der Windows-Befehlszeile. Verwenden Sie ^^ anstelle von ^.

git reset --soft HEAD^^

Weitere Informationen zu Escape-Charakteren finden Sie auf den Skriptseiten von Rob Van Der Woude .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.