Wie kann ich in Sourcetree einen Commit rückgängig machen?
- Einleitung
- Letzten Commit rückgängig machen und Änderungen behalten
- Commit komplett löschen und Änderungen verwerfen
- Commit in der Mitte der Historie rückgängig machen
- Zusätzliche Hinweise
Einleitung
Wenn du in Sourcetree einen Commit rückgängig machen möchtest, gibt es verschiedene Ansätze, abhängig davon, ob du den letzten Commit ändern, komplett entfernen oder in der Historie zurücksetzen willst. Sourcetree bietet dabei eine grafische Oberfläche, die dir viele gängige Git-Funktionen erleichtert. Im Folgenden erfährst du ausführlich, wie du verschiedene Arten von Rückgängigmachungen durchführen kannst.
Letzten Commit rückgängig machen und Änderungen behalten
Falls du den letzten Commit zurücknehmen möchtest, dabei aber die Änderungen, die dieser Commit enthält, noch im Arbeitsverzeichnis behalten willst, kannst du dies ganz einfach direkt in Sourcetree erledigen. Öffne dazu das Repository in Sourcetree und wechsle in die Ansicht, in der die Historie angezeigt wird. Dort findest du den letzten Commit oben in der Liste. Klicke diesen rechts an und wähle den Eintrag Reset current branch to this commit... aus.
Im folgenden Dialog kannst du den Reset-Modus auswählen. Um den Commit rückgängig zu machen, aber die Änderungen nicht zu verlieren, wählst du den Modus Mixed. Dieser Modus entfernt den Commit aus der Historie, setzt den Branch-Zeiger zurück, behält aber deine Dateien mit den Änderungen im Arbeitsverzeichnis, sodass du diese weiter bearbeiten oder erneut committen kannst.
Commit komplett löschen und Änderungen verwerfen
Wenn du den letzten Commit rückgängig machen möchtest und dabei auch die Änderungen, die du im Commit gemacht hast, komplett verwerfen willst, dann kannst du den gleichen Weg wie zuvor wählen: Rechtsklick auf den Commit und Reset current branch to this commit.... Diesmal wählst du jedoch als Reset-Modus Hard aus. Dadurch wird der Commit entfernt und der Zustand deines Arbeitsverzeichnisses auf den Stand des vorherigen Commits zurückgesetzt. Alle Änderungen, die dieser Commit enthalten hatte, gehen dabei verloren.
Commit in der Mitte der Historie rückgängig machen
Wenn du einen älteren Commit rückgängig machen willst, der nicht der letzte auf deinem Branch ist, solltest du vorsichtig sein, da das Ändern der Historie zu Konflikten führen kann, vor allem wenn du bereits gepusht hast. Eine Möglichkeit ist, einen sogenannten Revert durchzuführen. Dazu suchst du den Commit in der Historie heraus, klickst ihn mit der rechten Maustaste an und wählst Reverse commit... (oder Commit rückgängig machen). Sourcetree erzeugt daraufhin automatisch einen neuen Commit, der die Änderungen des ausgewählten Commits wieder entfernt. Diese Methode ist sicherer, da sie die Historie nicht verändert, sondern durch einen zusätzlichen Commit zurücksetzt.
Zusätzliche Hinweise
Beachte, dass das Rückgängigmachen von Commits, die du bereits auf ein entferntes Repository (z.B. GitHub) gepusht hast, besondere Vorsicht erfordert. Beim Resetten kann das lokale Repository in einen Zustand versetzt werden, der nicht mehr zur entfernten Historie passt. Sollte dies passieren, musst du meist mit git push --force arbeiten – in Sourcetree gibt es die Option Force Push. Dies kann jedoch die Arbeit anderer Entwickler beeinträchtigen.
Zusammenfassend kannst du in Sourcetree über die Reset-Funktion die letzten Commits löschen oder zurücksetzen, oder über den Revert-Befehl einzelne Commits rückgängig machen, ohne die Historie zu verändern. Je nach Bedarf wählst du die passende Methode aus, um sicher und effizient mit deiner Git-Historie zu arbeiten.
