|
1 | | -Commits für ein sauberes Log ändern |
2 | | -=================================== |
3 | | - |
4 | | -Mit ``git commit --fixup`` und ``git rebase --autosquash`` könnt ihr relativ |
5 | | -einfach eine Reihe von Commits korrigieren. Um dies an einem Beispiel zu |
6 | | -demonstrieren, stelle ich euch folgendes Szenario vor: |
| 1 | +Geschichte umschreiben |
| 2 | +====================== |
| 3 | + |
| 4 | +Es gibt in Git mehrere Befehle zum Umschreiben der Geschcihte. ``git rebase -i`` |
| 5 | +ist das bekannteste und flexibelste: ihr könnt Commits neu anordnen, |
| 6 | +zusammenfassen, bearbeiten und entfernen. diese Flexibilität geht jedoch mit |
| 7 | +einiger Komplexität einher: euer `Working Tree |
| 8 | +<https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-workingtree>`_ |
| 9 | +und euer `Index <https://git-scm.com/docs/gitglossary#def_index>`_ werden |
| 10 | +aktualisiert und Konflikte können entstehen, die gelöst werden müssen, bevor ihr |
| 11 | +mit der Arbeit fortfahren könnt. |
| 12 | + |
| 13 | +Mit ``git commit --fixup`` und ``git rebase --autosquash`` könnt ihr hingegen |
| 14 | +relativ einfach eine Reihe von Commits korrigieren. Im Folgenden wollen wir dies |
| 15 | +an einem Beispiel demonstrieren: |
7 | 16 |
|
8 | 17 | #. Wir haben in unserem ``my-feature``-Branch zwei Commits: den einen für die |
9 | 18 | eigentliche Funktion, den anderen für die zugehörigen Tests: |
@@ -64,8 +73,10 @@ demonstrieren, stelle ich euch folgendes Szenario vor: |
64 | 73 | 31a140a (my-feature) Add test for my new feature |
65 | 74 | 132ae9b Add new feature |
66 | 75 |
|
67 | | -#. Die Änderungen können nun mit ``git push -f`` an unseren entfernten Zweig |
68 | | - gesendet werden. |
| 76 | +#. Die Änderungen können nun mit ``git push --force-with-lease`` an unseren |
| 77 | + entfernten Zweig gesendet werden. ``--force-with-lease`` gewährleistet, dass |
| 78 | + Änderungen im entfernten Zweig :abbr:`ggf. (gegebenenfalls)` nicht |
| 79 | + überschrieben werden. |
69 | 80 |
|
70 | 81 | …mit ``git commit --fixup`` und ``git rebase --autosquash`` |
71 | 82 | ------------------------------------------------------------ |
@@ -118,3 +129,32 @@ korrigieren: mit ``git commit--fixup`` und ``git rebase --autosquash``. |
118 | 129 |
|
119 | 130 | Weitere Optionen findet ihr in der `Git Commit-Dokumentation |
120 | 131 | <https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt>`_. |
| 132 | + |
| 133 | +``git history`` |
| 134 | +--------------- |
| 135 | + |
| 136 | +.. version-added:: 2.54 |
| 137 | + |
| 138 | + Git 2.54 führt experimentell ``git history`` ein, :abbr:`d. h. (das heißt)`, |
| 139 | + dass sich die Schnittstelle noch weiterentwickeln kann. Mit ``git history`` |
| 140 | + wird die Korrektur von Tippfehlern früherer Commit-Meldungen und das |
| 141 | + Aufteilen von Commits in zwei Teile erleichtert: |
| 142 | + |
| 143 | + :samp:`git history reword {SHA}` |
| 144 | + öffnet deinen Editor mit der Nachricht des angegebenen Commits und |
| 145 | + schreibt diese direkt um, wobei alle Zweige aktualisiert werden, die von |
| 146 | + diesem Commit abstammen. Im Gegensatz zu :doc:`../rebase` greift es weder |
| 147 | + auf deinen Working Tree noch auf deinen Index zu. |
| 148 | + :samp:`git history split {SHA}` |
| 149 | + teilt einen Commit interaktiv in zwei Teile, wobei ihr auswählt, welche |
| 150 | + Teile in einen neuen übergeordneten Commit ausgelagert werden sollen. Das |
| 151 | + Interface entspricht dem von ``git add –p``. Nach der Auswahl der Blöcke |
| 152 | + erstellt Git einen neuen Commit mit diesen Änderungen als Vorgänger des |
| 153 | + ursprünglichen Commits, der alle nicht ausgewählten Blöcke beibehält, und |
| 154 | + schreibt alle nachgelagerten Zweige um, sodass sie auf den aktualisierten |
| 155 | + Verlauf verweisen. |
| 156 | + |
| 157 | + .. warning:: |
| 158 | + ``history`` unterstützt keine Historien, die Merge-Commits enthalten, und |
| 159 | + es können auch keine Operationen ausgeführt werden, die zu einem |
| 160 | + Merge-Konflikt führen würden. |
0 commit comments