Wie kann ich zu einem Git Commit zurückkehren?

Ich habe gerade angefangen, Git unter Windows zu verwenden, und ich habe eine kleine Frage. Wenn ich git commit zusammen mit einer Nachricht sage, wird mir klar, dass git die Datei festschreibt. Aber wo genau speichert es die festgeschriebene Datei?

Angenommen, ich nehme einige Änderungen vor und möchte mit der Git GUI zu meinem dritten Commit zurückkehren. Wie genau mache ich das?

 11
git
Author: slhck, 2012-12-25

2 answers

Git Commit speichert es nur auf der Bühne, die lokal auf Ihrem Computer ist. Verwenden Sie Push, um es auf einen Remote-Server (wie Github) zu aktualisieren.

Verwenden Sie git revert <ID>, um zu einem vorherigen Commit zurückzukehren. jedes Commit hat einen Identifizierungscode.

Siehe hier für weitere Details zu revert

 10
Author: Darcys22,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-12-25 09:35:56

Die obige Antwort ist nicht ganz korrekt - git revert <ID> setzt Ihr Repository nicht auf dieses Commit - git revert <ID> erstellt ein neues Commit, das die durch Commit <ID> eingeführten Änderungen rückgängig macht. Es ist mehr oder weniger eine Möglichkeit, ein Commit rückgängig zu machen und dieses Undo in Ihrem Verlauf als neues Commit zu speichern.

Wenn Sie Ihren Zweig auf den Status eines bestimmten Commits setzen möchten( wie vom OP impliziert), können Sie git reset <commit> oder git reset --hard <commit> Die erste Option aktualisiert nur den INDEX und lässt Dateien in Ihrem Arbeitsverzeichnis unverändert als hättest du die Änderungen vorgenommen, sie aber noch nicht begangen. Mit der Option --hard wird der Inhalt Ihres Arbeitsverzeichnisses durch den Inhalt von <commit> ersetzt.

Eine Warnung, dass git reset den Verlauf ändert - wenn ich mehrere Commits gemacht und dann auf das erste Commit zurückgesetzt habe, befinden sich die nachfolgenden Commits nicht mehr im Commit-Verlauf. Dies kann zu ernsthaften Kopfschmerzen führen, wenn einer dieser verlorenen Commits in ein öffentliches Repository verschoben wurde. Stellen Sie sicher, dass Sie es nur verwenden, um loszuwerden commits, die nicht in ein anderes Repository verschoben wurden!

 33
Author: wandrewni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-10-01 13:31:40