Sobes.tech
Junior — Middle

Erklären Sie das Funktionsprinzip des Befehls rebase im Versionskontrollsystem Git und worin er sich von merge unterscheidet.

sobes.tech KI

Antwort von AI

Der Befehl git rebase wird verwendet, um eine Reihe von Commits auf eine neue Basis zu verschieben oder 'umzuschreiben', also auf einen anderen Commit. Er ermöglicht es, Änderungen aus einem Zweig zu nehmen und sie 'überzuspielen' auf einen anderen Zweig, wodurch eine lineare Historie ohne zusätzliche Merge-Commits entsteht.

Unterschiede zu git merge:

  • git merge verbindet zwei Zweige und erstellt einen neuen Merge-Commit, der die Historie beider Zweige mit Verzweigungen erhält.
  • git rebase verschiebt die Commits eines Zweigs an die Spitze eines anderen, schreibt die Historie um und macht sie linear.

Beispiel:

Wenn du einen Zweig feature hast, der von master abzweigt, und master aktualisiert wurde, dann:

  • git merge master in feature erstellt einen Merge-Commit, der die Änderungen zusammenführt.
  • git rebase master in feature verschiebt deine Commits über den aktuellen Stand von master, als hättest du die Arbeit vom letzten Stand von master aus begonnen.

Rebase ist nützlich, um eine saubere Historie zu bewahren, erfordert aber Vorsicht bei der Arbeit mit öffentlichen Zweigen, um die gemeinsame Historie nicht umzuschreiben.