39 Stimmen

Git (TortoiseGit) - Wie kann man eine einzelne Datei auf eine frühere Revision zurücksetzen und dann den Rücksetzvorgang rückgängig machen?

Wenn Sie Git mit TortoiseGit verwenden: Weiß jemand, wie man eine einzelne Datei (oder ein ganzes Projektarchiv) auf eine frühere Revision zurücksetzen kann?

Ich habe zum Beispiel ein Repository, das mehrere Dateien enthält. Eine Datei existiert in drei Revisionen (1 ; 2 ; 3). Nun möchte ich von Revision 3 zurück zu 2 wechseln.

TortoiseGit bietet eine "Rückgängig machen"-Funktion im "Protokoll anzeigen"-Dialog an, die es erlaubt, zu einer bestimmten Revision zurückzuspringen, allerdings wird dadurch das gesamte Projektarchiv rückgängig gemacht und nicht nur eine einzelne Datei.

Außerdem weiß ich nicht, wie ich die Rückgängigmachung rückgängig machen und zur neuesten Version zurückkehren kann, wenn ich etwas rückgängig gemacht habe.

22voto

mlibby Punkte 6096

Über die Befehlszeile: git checkout ist wahrscheinlich das, was Sie wollen.

Die Dokumentation zeigt ein Beispiel dafür:

$ git checkout master~2 Makefile

umzukehren Makefile auf zwei Revisionen im Master-Zweig zurück

Von TortoiseGit aus (über den Windows Explorer) können Sie dies mit den folgenden Schritten tun:

  • Navigieren Sie im Explorer zu dem Ordner, in dem sich die Datei befindet.
  • Klicken Sie mit der rechten Maustaste auf die Datei, die Sie wiederherstellen möchten, und wählen Sie Show log aus dem TortoiseGit Kontextmenü
  • Wählen Sie im oberen Bereich ("Graph") die Revision aus, die die Version der Datei enthält, zu der Sie zurückkehren möchten
  • Im dritten Abschnitt (Dateiliste) klicken Sie mit der rechten Maustaste auf die Datei und wählen Revert to this revision
  • Sie sollten eine Meldung erhalten wie 1 files revert to e19a77

2 Stimmen

Ja, Sie haben Recht, das funktioniert perfekt mit den Git Kommandozeilenwerkzeugen, aber ich bin auf der Suche nach der entsprechenden Funktionalität in TortoiseGit, das ebenfalls Git Kommandozeilenwerkzeuge im Hintergrund verwendet.

0 Stimmen

Dies scheint mit der aktuellen Version von TortoiseGit nicht möglich zu sein.

4 Stimmen

Ich glaube, ich habe das mit TortoiseGit herausgefunden, siehe bearbeitete Antwort.

22voto

mxmoss Punkte 409

Es ist auch möglich, eine bestimmte Datei abzurufen:

  • Klicken Sie mit der rechten Maustaste auf die Datei
  • Wählen Sie den Menüpunkt: Git Log anzeigen

TortoiseGit zeigt einen Dialog mit einer Liste aller Revisionen

  • Klicken Sie auf die vorherige Revision (2)

In einer Liste im unteren Teil des Dialogs werden alle mit der Übergabe verbundenen Dateien angezeigt

  • Suchen Sie die Datei, die Sie anzeigen möchten
  • Klicken Sie mit der rechten Maustaste auf diese Datei und speichern Sie die Revision unter
  • Dadurch wird die vorherige Revision der Datei mit der an die Datei angehängten Commit-Nummer gespeichert

Zum Beispiel: - Originaldatei ist Datei.txt - Revision 2 wird als Datei-67b51a8.txt gespeichert

Ich verwende TortoiseGit v2.2.0.0

1 Stimmen

Dies ist die beste Antwort! Die anderen Antworten beziehen sich wahrscheinlich auf frühere Versionen von TortoiseGit, bevor diese Funktionalität hinzugefügt wurde.

0 Stimmen

Sie können auch direkt auf Zu dieser Revision zurückkehren zum Zurücksetzen nur diese Datei wie es bei dieser Übergabe aussah. Dies hat keinen Einfluss auf den Zweig, aus dem Sie ausgecheckt sind.

17voto

Chris Moschini Punkte 34996

In TortoiseGit klicken Sie mit der rechten Maustaste auf den Projektordner und klicken auf Protokoll anzeigen, dann klicken Sie mit der rechten Maustaste auf die Änderung, die Sie rückgängig machen wollen und klicken auf Zu dieser wechseln/auschecken... . Sie können dann von dieser seltsamen Stelle im Übergabestapel aus fortfahren, oder im Zweig, falls Sie eine Übergabe planen und wollen, dass alles in Ordnung bleibt.

6 Stimmen

Ich denke, es wird alle Projekte verändern.

0 Stimmen

In der Frage wird nach einem von beiden gefragt: "eine einzelne Datei (oder ein komplettes Repository) auf eine frühere Revision zurücksetzen"

0 Stimmen

Diese andere Antwort zeigt, wie man nur zurückkehren kann 1 Akte zu einer früheren Übertragung

8voto

Yue Lin Ho Punkte 2699

Ich habe meine Antwort auf der Grundlage dieser Kommentare aktualisiert:


Angenommen, der Arbeitsbaum ist sauber und Sie wollen:

  1. Auschecken einiger Datei(en) der vorherigen Revision
  2. Prüfung
  3. Zur aktuellen Revision zurückkehren

  1. Auschecken einiger Datei(en) der vorherigen Revision

    (a) Klicken Sie mit der rechten Maustaste auf die Datei, die Sie wiederherstellen möchten, und wählen Sie Protokoll für diese Datei anzeigen

    enter image description here

    (b) Klicken Sie mit der rechten Maustaste auf die Datei in der Dateiliste und führen Sie Zur übergeordneten Revision zurückkehren

    enter image description here

    enter image description here

    (c) Wiederholen Sie (a) und (b), bis Sie alle gewünschten Dateien erhalten haben.

    enter image description here

  2. Prüfung

  3. Zur aktuellen Revision zurückkehren

    (a) durchführen Zurückkehren... im Kontextmenü des Explorers

    Auf diese Weise können Sie die Datei(en) auswählen, die Sie wiederherstellen möchten.

    (b) oder dieser schnelle Weg: Führen Sie Hart zurücksetzen im Log-Dialog

    Auf diese Weise werden alle geänderten Dateien wiederhergestellt. (=> Verlust aller Änderungen im Arbeitsverzeichnis)

    enter image description here

    enter image description here

(Getestet auf TortoiseGit 1.8.16.1, GfW 2.6.4.Windows.1, Win 10 64bit)

0 Stimmen

Dies ist falsch. Welche Version von TortoiseGit ist dies? Ich glaube nicht, dass "Zur übergeordneten Revision zurückkehren" überhaupt noch vorhanden ist. Rückgängig machen ist für das Zerstören von Änderungen im lokalen Arbeitsbereich. Die Frage hier ist, ob Sie zu einer älteren Version zurückkehren und später zur aktuellen Version zurückkehren wollen, nicht die aktuelle Version zerstören.

0 Stimmen

Die Funktion "Rückgängig machen" tut immer noch etwas anderes als das, wonach der Fragesteller gesucht hat.

3voto

Ovsyanka Punkte 392

Für Schildkröte Version 2.3.0:

Es gibt mehrere Möglichkeiten, aber am schnellsten geht es meiner Meinung nach so:

  1. Rechtsklick auf die Datei
  2. Klicken Sie auf den Menüpunkt "Mit vorheriger Version vergleichen".
  3. Rechtsklick auf die linke (vorherige) Version der Datei
  4. Klicken Sie auf den Menüpunkt "Diese ganze Datei verwenden".
  5. Speichern Sie die Änderungen (ctrl+s)

0 Stimmen

Jap! Schneller Weg. :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X