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.

norbertas.gaulia
quelle
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 .

Adam Dymitruk
quelle
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^"
ich und
quelle
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 .

mcdon
quelle