Ich habe gerade ein Upgrade auf Magit 2.1.0 durchgeführt. (Und auch zu Emacs 25.0.50 und Git 2.3.1.)
Bisher konnte *magit*
ich im Puffer:
- Wählen Sie ein Stück im Bereich Nicht bereitgestellt aus.
- Tippe vund antworte mit Ja, um es umzukehren.
Das war praktisch.
Aber jetzt in magit 2.1.0 gibt es einen Fehler: "Cannot reverse unstaged changes"
.
Warum?
Als ich einen Hinweis aus der Fehlermeldung nahm, stellte ich fest, dass ich dies immer noch tun kann, wenn auch etwas "rückwärts" mit mehr Schritten:
- stage das Stück. (Fühlt sich rückwärts an und rückt näher an den festgelegten Zustand heran.)
- Navigieren Sie nach unten und wählen Sie es im Bereich Bereitgestellt aus.
- Drücken Sie v, antworten Sie mit Ja.
- Allerdings ist das Stück immer noch in uSzene gesetzt , also muss ich das Stück endlich inszenieren .
Ist das ein Fehler oder ist es beabsichtigt und / oder ich bin dicht? Wenn letzteres, können Sie mir helfen, das zu verstehen?
UPDATE: Nach gründlicher RTF-Information sehe ich, dass es zwei Befehle gibt:
- v
magit-reverse
Machen Sie die Änderung am Punkt im Arbeitsbaum rückgängig. - k
magit-discard
Entfernen Sie die Änderung am Punkt aus dem Arbeitsbaum.
Es scheint so, als ob k magit-discard
es das tut, was ich vvorher gewohnt war . Es funktioniert auf einem nicht bereitgestellten Stück.
Also muss ich praktisch nur mein Muskelgedächtnis trainieren, um es zu nutzen k. Ich könnte das als Selbstantwort posten. Aber ich denke, ich bin immer noch neugierig auf die Gründe, weil ich mir vorstelle, dass das Verständnis mir dabei hilft, magit insgesamt besser zu verstehen.
k
verwirft eine nicht festgeschriebene Änderung auch in früheren Versionen von magit und scheint der geeignete Befehl für das zu sein, was Sie tun. v
is for git revert: Erstellen eines neuen Commits, bei dem das Gegenteil eines vorherigen geändert wird. Das Zurücksetzen einer Änderung, die nicht tatsächlich festgeschrieben wurde, ist vermutlich dasselbe wie das Verwerfen, aber das Zurücksetzen hat eine bestimmte Bedeutung als git-Befehl.
v
es an magit-revert-item
(die "umgekehrte" Terminologie stammt von dort, @PythonNut) gebunden war und für nicht bereitgestellte Elemente, für die dies verwendet wurde magit-discard-item
(wie auch an k
) - siehe Zeile 4872 hier . Anscheinend habe ich aus Versehen diese spezielle Bedeutung von gelernt v
, die funktioniert, wenn ich gelernt haben sollte, zu verwenden k
.