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.
- Nutzung
git 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 stashennAktuellen Hunk überspringensAktuellen Hunk aufteilene: Aktuellen Hunk manuell bearbeitenq: 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 behaltenrewordCommit-Nachricht ändernedit: Commit bearbeitensquash: Den aktuellen Commit mit dem vorherigen Commit squashenfixup: Den aktuellen Commit mit dem vorherigen Commit zusammenführen, ohne die Commit-Nachricht beizubehaltendrop: 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 abc123Weitere Erweiterungen