git/Branch-Pull-Request.md

59 lines
4.9 KiB
Markdown
Raw Normal View History

2024-07-22 16:02:56 +00:00
# Commit, Branch und Pull Request
Hier erfährst du, was ein Commit, Branch und Pull Request ist, wie sie zusammenhängen und wie du sie erstellen kannst.
## Was ist ein Commit und wie erstelle ich ihn?
Ein Commit bezeichnet die Freischaltung einer bestimmten oder mehrerer Änderungen. Jede Transaktion wird festgehalten, wodurch jeder Schritt nachvollzogen werden kann. Durch jeden Commit entsteht eine neue Versionierung, die protokolliert wird und auch wieder rückgängig gemacht werden kann ("Rollback"):
![](https://pad.gwdg.de/uploads/b5a49e7c-4a73-498f-b381-f04da9dc2570.png)
Unter "Operationen" kann die Änderung zurückgesetzt werden. Dazu muss ein Branch ausgewählt werden. Was ein Branch ist, erfährst du im nächsten Absatz. Wenn du ein neues Dokument anlegst, solltest du für die Zuordnung einen "filename" angeben, also z.B. Einführung-Commit" oder Ähnliches.Außerdem sollte das Dokument einem Branch zugewiesen werden (siehe nächster Absatz). Wenn er inhaltlich zu einem vorhandenen Branch passt,
![](https://pad.gwdg.de/uploads/8b62adbb-f420-4572-a54c-c5f7007be502.png)
## Was ist ein Branch und wie erstelle ich ihn?
Die Commits in Git bauen aufeinander auf und bilden dabei eine verkettete "Liste", der sie zugeordnet werden. Diese "Liste" nennt man auch Branch (Entwicklungszweig) und die Commits werden darin quasi sortiert. Der main-Branch ist dabei der Hauptzweig, in den alle Änderungen überführt werden:
![](https://pad.gwdg.de/uploads/82bcfecd-c079-48b6-8dc0-94a2ab5fd575.png)
Wenn du oben in der Leiste auf "Branches" klcikst, werden dir alle Branches angezeigt und du kannst die einzelnen Änderungen im Branch nachverfolgen:
![](https://pad.gwdg.de/uploads/7bd97452-909d-45db-aa5c-5d0d7b27a52e.png)
Hier kannst du mit den entsprechenden Benutzer-Rechten den Branch umbenennen, löschen, wiederherstellen oder die Historie herunterladen. Möchtest du z.B. ein Dokument hinzufügen oder eine Änderung in einem vorhandenen Dokument vornehmen, kannst du entweder einen vorhandenen Branch auswählen, z.B. "change-studientag", wenn ein Dokument zum Git-Studientag hinzugefügt oder geändert werden soll:
![](https://pad.gwdg.de/uploads/82c25071-abe1-4728-94c0-a925a95079b3.png)
Wenn du einen neuen Branch erstellen möchtest, kannst du einfach in dem Suchfeld einen neuen Namen einfügen, z.B. "neuer-branch" und unten auf "Erstelle Branch" klicken und schon ist der Branch erstellt:
![](https://pad.gwdg.de/uploads/60d511d4-66ad-4e38-909a-3bd0c46a9ff2.png)
Wichtig: Achte darauf, dass die Bezeichnung des Branches kurz und prägnant ist. In der Regel wird zwischen den einzelnen Worten ein Bindestrich gesetzt also Wort-Wort. Achte auch immer darauf, dass du den richtigen Branch ausgewählt hast, bevor du Änderungen durchführst. Als Standard-Branch in der main-Branch festgelegt.
Hast du nun alle Änderungen ("Commits") in einem Branch durchgeführt und möchtest, dass andere Korrekturen oder Ergänzungen durchühren oder dir Feedback und Anmerkungen zurückspielen, kannst du einen Pull Request erstellen (siehe folgender Absatz).
## Was ist ein Pull Request und wie erstelle ich ihn?
Ein Pull Request ist ein Vorschlag zum Zusammenführen einer Reihe von Änderungen von einem Branch in den Hauptspeicher (main-Branch). In einem Pull Request können Projektmitarbeitende die vorgeschlagenen Änderungen überprüfen und besprechen, bevor sie die Änderungen in den main-Branch integrieren. Der Pull Request (abgekürzt PR) entspricht quasi einem Entwurf, der nach dem Zusammenführen veröffentlicht wird.
![](https://pad.gwdg.de/uploads/cfe1b7df-babb-4e03-b513-4290ffe87ee2.png)
Bevor du ein Pull Request erstellst, kannst noch kommentieren und eine ergänzende Beschreibung und durch @-Mentions Personen markieren:
![](https://pad.gwdg.de/uploads/e29669f0-d454-4377-937e-a52d5cb57aca.png)
Je nach Benutzerrechten, kannst du nun direkt den Pull Request mergen und in den Hauptzweig ("main-branch") überführen oder noch Reviewer festlegen, die dann die Änderungen nochmal überprüfen, bevor sie überführt werden:
![](https://pad.gwdg.de/uploads/8f7a4fae-0f32-49fe-9e7a-593c7b08015c.png)
Wenn der Reviw-Prozess erfolgreich war, werden die verschiedenen Branches zusammengeführt und der Pull Reuqest geschlossen.
## Wie hängen Commit, Branch und Pull Request zusammen?
Du kannst dir das Ganze wie einen Baum vorstellen: Der Baumstamm ist der main-Branch bzw. das Repositorium als Hauptwissenspeicher für alle Veröffentlichungen. Um den Baum stetig weiterzuentwickeln können neue Äste entstehen, quasi die Branches als Pfade von Änderungen. Die einzelnen Änderungen sind dann die Commits, sozusagen die Blätter, die einem Ast zugeodnet werden können. Hier der Versuch der Visualisierung:
![](https://pad.gwdg.de/uploads/cec03358-ddc6-43be-85b0-a9277d49e1c2.jpg)
Eine weitere Abbildung findest du [hier](https://git.rpi-virtuell.de/Comenius-Institut/git/src/branch/main/gitgraph.md).