Wie setze ich in Sourcetree ein Repository auf einen früheren Commit zurück?

Melden
  1. Einleitung
  2. Commit auswählen
  3. Repository temporär auf früheren Commit setzen (Checkout)
  4. Repository dauerhaft auf früheren Commit zurücksetzen (Reset)
  5. Wichtige Hinweise
  6. Zusammenfassung

Einleitung

Wenn du dein Git-Repository in Sourcetree auf einen früheren Commit zurücksetzen möchtest, gibt es verschiedene Möglichkeiten, dies zu tun. Dies kann notwendig sein, wenn du Änderungen rückgängig machen möchtest oder wenn du den Projektstand auf einen früheren Zustand zurücksetzen willst. In Sourcetree kannst du dies entweder temporär (durch Checkout) oder dauerhaft (durch Reset) erreichen. Im Folgenden erkläre ich dir ausführlich, wie du vorgehst.

Commit auswählen

Starte Sourcetree und öffne das Repository, das du zurücksetzen möchtest. In der Übersicht siehst du die Liste der Commits im Verlauf. Suche den Commit heraus, zu dem du zurückkehren möchtest. Diesen erkennst du an seiner Commit-Nachricht, dem Datum oder der Commit-Hash-ID. Klicke direkt auf diesen Commit, damit er in Sourcetree ausgewählt wird.

Repository temporär auf früheren Commit setzen (Checkout)

Wenn du dein Repository nur temporär auf diesen früheren Zustand setzen möchtest, ohne die Historie zu verändern, kannst du den Commit auschecken. Rechtsklicke dazu auf den gewünschten Commit und wähle im Kontextmenü Checkout Commit oder Auschecken. Dadurch befindet sich dein Arbeitsverzeichnis im Zustand dieses Commits, du befindest dich aber in einem sogenannten Detached HEAD-Zustand. Dies bedeutet, dass du zwar Dateien anschauen und bearbeiten kannst, aber keine neuen Commits auf einem Branch machst, solange du nicht zu einem Branch zurückkehrst oder einen neuen Branch erzeugst.

Repository dauerhaft auf früheren Commit zurücksetzen (Reset)

Willst du dein Repository dauerhaft auf den früheren Commit zurücksetzen und dabei alle nachfolgenden Commits verwerfen (oder zumindest deine Branch-Historie zurücksetzen), dann musst du einen Reset durchführen. Klicke dazu wieder mit der rechten Maustaste auf den gewünschten Commit und wähle Reset current branch to this commit. Daraufhin erscheint ein Dialog, in dem du die Art des Resets wählen kannst:

Soft Reset: Bewegt den Branch-Zeiger auf den ausgewählten Commit, behält aber alle Änderungen aus den nachfolgenden Commits als uncommittete Änderungen (Staging-Bereich oder Arbeitsverzeichnis). Dies ist nützlich, wenn du die Änderungen behalten, aber neu committen möchtest.

Mixed Reset: Setzt den Branch-Zeiger zurück und entfernt die Änderungen aus dem Staging-Bereich, lässt sie aber im Arbeitsverzeichnis. So bleiben die Dateien verändert, sind aber nicht gestaged.

Hard Reset: Setzt den Branch-Zeiger zurück und verwirft alle Änderungen in Arbeitsverzeichnis und Staging-Bereich. Das Repository und die Dateien sind danach exakt so, wie im ausgewählten Commit. Achtung: Diese Aktion kann Datenverlust verursachen, da spätere Änderungen gelöscht werden.

Wähle entsprechend deinen Bedarf die passende Option aus. Nachdem du den Reset bestätigst, ist dein aktueller Branch auf den ausgewählten Commit zurückgesetzt.

Wichtige Hinweise

Beachte, dass ein Reset (insbesondere Hard Reset) die Historie des Branches verändert. Wenn du bereits mit anderen zusammenarbeitest und dein Repo mit einem Remote-Repository verknüpft ist, kann dies zu Konflikten führen. In solchen Fällen solltest du vorsichtig sein und dich mit deinem Team abstimmen oder alternative Methoden wie Revert verwenden.

Zusammenfassung

In Sourcetree kannst du ein Repository auf einen früheren Commit zurücksetzen, indem du den Commit auswählst und entweder einen Checkout durchführst, um temporär auf diesen Stand zu wechseln, oder einen Reset, um die Historie dauerhaft zurückzusetzen. Der Reset bietet dabei verschiedene Modi (soft, mixed, hard) je nach gewünschtem Verhalten. Achte darauf, welche Auswirkungen die jeweilige Methode hat, besonders wenn du mit einem Remote-Repository arbeitest.

0

Kommentare