Verwenden Sie Git Rebase in der Befehlszeile

John Wachira 15 Februar 2024
Verwenden Sie Git Rebase in der Befehlszeile

In diesem Artikel wird die effektive Verwendung des Befehls git rebase erörtert. Der Befehl git rebase ermöglicht es uns, eine Reihe von Commits zu ändern und den Commit-Verlauf in unserem Repository zu ändern.

Wir können Commits mit dem Befehl git rebase bearbeiten, neu anordnen oder squashen.

Verwenden Sie git rebase in der Befehlszeile

Hier sind einige allgemeine Verwendungsoptionen.

  1. Wir können eine vorherige Commit-Nachricht bearbeiten.
  2. Wir können zwei oder mehr Commits zu einem kombinieren.
  3. Wir können unnötige Commits in unserem Repository rückgängig machen oder löschen.

Beim Rebasing können wir gegen einen Branch oder gegen einen Zeitpunkt in unserem Repository rebasen.

Um einen Branch zu rebasen, führen wir Folgendes aus:

$ git rebase --interactive <branch_name>

Um einen Zeitpunkt neu zu berechnen, führen wir Folgendes aus:

$ git rebase --interacive HEAD~

Wir können HEAD~7 hinzufügen, um bis zum siebten Commit zu rebasen.

Sehen wir uns die verfügbaren Befehle beim Rebasing an.

  1. pick – Wir verwenden es, um unseren Commit-Verlauf neu zu ordnen.
  2. reword – Wir verwenden es, wenn wir die Commit-Nachricht ändern wollen. Es wirkt sich nicht auf die durch das Commit eingeführten Änderungen aus.
  3. edit – Wir verwenden es, wenn wir ein Commit bearbeiten oder ändern möchten. Wir können einen Commit in kleinere Commits aufteilen oder durch den Commit verursachte Fehler entfernen.
  4. squash – Wir verwenden es, um zwei Commits zu einem zu kombinieren und geben uns die Möglichkeit, dem neuen Commit eine neue Nachricht zu geben.
  5. fixup – Es ist dasselbe wie squash, außer dass es die Nachricht für das zusammengeführte Commit verwirft und die darüber liegende verwendet.

Wir werden nun versuchen, die obigen Optionen in einem Beispiel zu verwenden. In diesem Beispiel rebasieren wir auf einen Zeitpunkt in unserem Delftscopetech-Repository.

Wir werden HEAD~7 rebasen. Wir rennen:

$ git rebase --interactive HEAD~7

Der Texteditor zeigt die folgende Ausgabe.

git rebase bis zum siebten Commit

Unsere Commits sind vom ältesten zum neuesten angeordnet.

In unserem Texteditor werden wir:

  1. Squash den Commit (fa39187) in den Commit (1fc6c95) mit squash.
  2. Verschieben Sie den letzten Commit (7b36971) nach oben vor den Commit (6b2481b) und behalten Sie ihn als pick bei.
  3. Merge das Commit (c619268) in das Commit (6b2481b) und verwerfe die Commit-Nachricht mit fixup.
  4. Teilen (dd1475d) mit bearbeiten.
  5. Korrigieren Sie die Commit-Nachricht (4ca2acc) mit reword.

Wir werden die Befehle im Texteditor wie folgt ändern.

Texteditor ändern

Wir können den Texteditor speichern und schließen, und Git startet die Rebase.

Git überspringt den pick 1fc6c95 und öffnet einen Editor, da der squash einige Eingaben von uns erfordert. Es sollte so aussehen.

Git Editor öffnen - Squash

Sie können den Editor schließen und mit dem Rebase fortfahren, wenn Sie mit den Änderungen zufrieden sind. Die nächsten drei Befehle erfordern keine unserer Eingaben, aber das Bearbeiten tut es und gibt die folgende Nachricht an das Terminal aus.

Git Editor öffnen - bearbeiten

An dieser Stelle können wir beliebige Änderungen vornehmen und mit dem Befehl git commit --amend einen neuen Commit erstellen. Sobald dies erledigt ist, können wir fortfahren, indem wir den Befehl git rebase --continue ausführen.

Führen Sie immer git rebase --continue aus, nachdem Sie die Änderungen vorgenommen haben. Sie können später nicht rebasen, wenn Sie vergessen, den Befehl auszuführen und mit dem Codieren fortzufahren.

Sie können dies jedoch beheben, indem Sie:

  1. Führen Sie den Befehl git reset --soft HEAD^ für die HEAD-Referenz zum übergeordneten Element aus.
  2. Führen Sie git rebase --continue aus, um das Rebasing abzuschließen.

Sie können den Rebase auch abbrechen, indem Sie den Befehl git rebase --abort ausführen und den Vorgang wiederholen. Dazu müssen Sie den Zusammenführungskonflikt erneut lösen.

Der Teil umformulieren erfordert unsere Eingabe, und Git öffnet den Texteditor mit den folgenden Informationen.

Git Editor öffnen - neu formulieren

Wir können den Text ändern, die Datei speichern und die Rebase abschließen.

Kurz gesagt, der Befehl git rebase ermöglicht es uns, den Zustand unseres Repositorys in Bezug auf Commits zu ändern. Wir können Commits quetschen, umbenennen oder neu anordnen.

Achten Sie beim Zusammenführen von Konflikten beim Rebasing.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Rebase