Hier sind die gängigsten Methoden:

git checkout

Für temporäres Betrachten oder Testen können Sie git checkout <commit> verwenden, um Ihren Arbeitskopie auf den Zustand eines bestimmten Commits zurückzusetzen. Beachten Sie jedoch, dass dies Ihren HEAD in den "detached HEAD"-Zustand versetzt, was bedeutet, dass Sie sich außerhalb des normalen Branch-Workflows befinden.

git checkout <commit-hash>

Um zu Ihrem aktuellen Branch zurückzukehren, führen Sie git checkout <branch-name> aus.

git revert

Wenn Sie Änderungen eines bestimmten Commits rückgängig machen möchten, ohne die Projektgeschichte zu verändern, können Sie git revert verwenden. Dieser Befehl erstellt einen neuen Commit, der die Änderungen des angegebenen Commits umkehrt. Das ist eine sichere Methode, die besonders für öffentliche oder geteilte Branches geeignet ist.

git revert <commit-hash>

Wenn der zu revertierende Commit Konflikte verursacht, fordert Git Sie auf, diese zu lösen, bevor der Revert abgeschlossen werden kann.

git reset

git reset verändert den aktuellen Branch-Head auf einen angegebenen Zustand und kann optional Änderungen im Arbeitsverzeichnis und/oder in der Staging-Area rückgängig machen. Je nach verwendeter Option (--soft, --mixed, --hard) beeinflusst der Befehl die Commit-Historie und den Arbeitskopie in unterschiedlichem Maße.

  • Soft Reset (--soft): Setzt den HEAD auf den angegebenen Commit zurück, behält aber die Staging-Area und das Arbeitsverzeichnis bei. Dies ist nützlich, um die letzten Commits neu zu organisieren, ohne den aktuellen Arbeitsstand zu verlieren.

  • git reset --soft <commit-hash>
  • Mixed Reset (Standardoption, --mixed): Setzt den HEAD und die Staging-Area zurück, lässt aber das Arbeitsverzeichnis unverändert. Änderungen, die seit dem angegebenen Commit gemacht wurden, sind im Arbeitsverzeichnis vorhanden, aber nicht gestaged.

  • git reset <commit-hash>
  • Hard Reset (--hard): Dies ist die radikalste Option. Sie setzt den HEAD, die Staging-Area und das Arbeitsverzeichnis zurück, wodurch alle Änderungen, die seit dem angegebenen Commit gemacht wurden, verloren gehen

  • git reset --hard <commit-hash>

Warnung

Beim Umgang mit git reset --hard und Operationen, die die Historie verändern, ist Vorsicht geboten, besonders wenn Sie bereits Commits auf einen geteilten oder öffentlichen Branch gepusht haben. Solche Operationen können die Kollaboration mit anderen erschweren und zu Datenverlust führen, wenn sie nicht sorgfältig gehandhabt werden.

Für dauerhafte Änderungen, die mit anderen geteilt werden sollen, ist git revert oft die sicherere Wahl, da es die Projektgeschichte bewahrt und transparent macht, was und warum etwas geändert wurde.


Last modified: Sunday, 17 March 2024, 4:53 PM