Erweiterte Git-Operationen

Nach der Beherrschung der Git-Grundlagen können erweiterte Operationen Ihnen helfen, Ihre Codebasis effizienter zu verwalten und zu optimieren.

Hier sind einige gängige erweiterte Operationen und ihre ausführlichen Erklärungen:

  • Interaktives Staging: Wählen Sie Änderungen aus, um sie blockweise für eine feingranulare Kontrolle über Commits zum Staging hinzuzufügen.
  • Git Stash: Arbeitsfortschritt vorübergehend speichern, um den Aufgabenwechsel zu erleichtern.
  • Git Rebase: Änderungen von einem Branch auf einen anderen verschieben und dabei die Commit-Historie linear halten.
  • Git Cherry-Pick: Einen bestimmten Commit auswählen und auf den aktuellen Branch anwenden.

1. Interaktives Staging

git addMit dem Befehl können Dateien oder Teile von Dateien selektiv zum Staging-Bereich hinzugefügt werden, was beim Umgang mit komplexen Änderungen sehr nützlich ist.

  • Nutzunggit add -p: Änderungen auswählen, um sie Hunk für Hunk zum Staging hinzuzufügen.
git add -p

Nach Ausführung dieses Befehls zeigt Git Dateiänderungen Hunk für Hunk an, sodass Sie wählen können, ob Sie jeden Hunk stagen möchten. Häufige Optionen sind:

  • yAktuellen Hunk stashen
  • nAktuellen Hunk überspringen
  • sAktuellen Hunk aufteilen
  • e: Aktuellen Hunk manuell bearbeiten
  • q: Aus dem Index entfernen

2. Git Stash: Arbeitsfortschritt vorübergehend speichern

git stashMit dem Befehl können Sie Änderungen in Ihrem aktuellen Arbeitsverzeichnis vorübergehend speichern, damit Sie zu einem anderen Branch wechseln oder andere Aufgaben erledigen können.

Aktuellen Arbeitsfortschritt speichern:

git stash

Gespeicherten Fortschritt anzeigen:

git stash list

Zuletzt gestashten Fortschritt anwenden:

git stash apply

Zuletzt gestashten Fortschritt anwenden und löschen:

git stash pop

Bestimmten Stash löschen:

git stash drop stash@{n}

Alle Stashes löschen:

git stash clear

3. Git Rebase: Rebasen

git rebaseDer Befehl wird verwendet, um Änderungen von einem Branch auf einen anderen Branch zu verschieben. Er hilft, die Commit-Historie linear zu halten und Konflikte beim Mergen zu reduzieren.

Den aktuellen Branch auf den angegebenen Branch rebasen:

git rebase <branchname>

Zum Beispiel: Rebase den aktuellen Branch aufmainbranch:

git rebase main
  • Interaktiver Rebase:
git rebase -i <commit>

Der interaktive Rebase ermöglicht es dir, Commits während des Rebase zu bearbeiten, zu löschen oder zusammenzufassen. Übliche Optionen sind:

  • pick: Commit behalten
  • rewordCommit-Nachricht ändern
  • edit: Commit bearbeiten
  • squash: Den aktuellen Commit mit dem vorherigen Commit squashen
  • fixup: Den aktuellen Commit mit dem vorherigen Commit zusammenführen, ohne die Commit-Nachricht beizubehalten
  • drop: Commit löschen

4. Git Cherry-Pick: Commits auswählen

git cherry-pickDer Befehl ermöglicht es Ihnen, einen bestimmten Commit auszuwählen und ihn auf den aktuellen Branch anzuwenden. Er ist nützlich, wenn Sie bestimmte Änderungen von einem Branch in einen anderen übertragen müssen.

Cherry-pick:

git cherry-pick <commit>

Zum Beispiel,abc123Den Commit auf den aktuellen Branch anwenden:

git cherry-pick abc123

Cherry-Pick-Konflikte beheben: Wenn während des Cherry-Picks Konflikte auftreten, verwenden Sie dies nach deren Behebunggit cherry-pick --continueCherry-Picking fortsetzen.

Beispieloperation

Nachfolgend finden Sie ein umfassendes Beispiel, das zeigt, wie Sie diese erweiterten Operationen verwenden:

Interaktives Staging:

git add -p

Arbeitsfortschritt speichern:

git stash

Gespeicherten Fortschritt anzeigen:

git stash list

Gespeicherten Fortschritt anwenden:

git stash apply

Aktuellen Branch rebasen aufmainBranch:

git rebase main

Interaktiver Rebase zum Bearbeiten der Commit-Historie:

git rebase -i HEAD~3

Commit-Historie bearbeiten, z. B. Commits squashen und umbenennen.

pickfeatureeinen bestimmten Commit auf dem Branch zumainBranch:

git checkout main
git cherry-pick abc123
Weitere Erweiterungen