Ich bin kein Git-Experte und bin gerade erst in dieses Forum gekommen, um es zu verstehen! Daher ist meine Erklärung vielleicht nicht perfekt, sorry dafür. Ich fand alle anderen Antworten hilfreich und werde einfach versuchen, eine andere Perspektive zu geben. Ich werde die Frage ein wenig abändern, da ich denke, dass dies vielleicht die Absicht des Autors war: " Ich bin neu bei Git. Bevor ich Git verwendet habe, habe ich meine Dateien wie folgt umbenannt: main.c, main_1.c, main_2.c, wenn ich größere Änderungen vorgenommen habe, um im Falle von Problemen zurückgehen zu können. Wenn ich also beschloss, zu main_1.c zurückzukehren, war es einfach, und ich behielt auch main_2.c und main_3.c, da ich sie später noch brauchen konnte. Wie kann ich das Gleiche mit Git erreichen? " Für meine Antwort verwende ich hauptsächlich "Bedauern Nummer drei" aus der großartigen Antwort von Matt oben, weil ich auch denke, dass die ursprüngliche Frage lautet: "Was mache ich, wenn ich bei der Verwendung von Git Bedauern empfinde?". Am Anfang ist die Situation so:
A-B-C-D (Master)
- Der erste wichtige Punkt ist die Erstellung eines neuen Zweigs : git branch mynewbranch . Dann bekommt man:
A-B-C-D (Master und meinneuerZweig)
- Nehmen wir nun an, dass man zu A zurückkehren möchte (3 Commits vorher). Der zweite wichtige Punkt ist die Verwendung des Befehls git reset --hard auch wenn man im Netz lesen kann, dass es gefährlich ist. Ja, es ist gefährlich, aber nur für unbestätigte Änderungen. Der richtige Weg ist also:
Git reset --hard then number of thecommitA
ou
Git reset --hard master~3
Dann erhält man: A (Master) - B - C - D (meinneuerZweig)
Dann ist es möglich, mit der Arbeit fortzufahren und von A (Master) aus zu committen, aber dennoch einen einfachen Zugriff auf die anderen Versionen zu erhalten, indem man auf dem anderen Zweig auscheckt: git checkout mynewbranch . Nehmen wir nun an, dass man vergessen hat, einen neuen Zweig zu erstellen, bevor der Befehl git reset --hard . Ist die Übergabe B, C, D verloren? Nein, aber sie sind nicht in irgendwelchen Zweigen gespeichert. Um sie wieder zu finden, kann man den Befehl : Git Reflog das als "Sicherheitsbefehl" gilt ("im Falle von Problemen, Ruhe bewahren und git reflog verwenden"). Dieser Befehl listet alle Übertragungen auf, auch die, die zu keinem Zweig gehören. Es ist also ein bequemer Weg, um die Commits B, C oder D zu finden.