Skip to content
Snippets Groups Projects
Commit 78e3b983 authored by morit02's avatar morit02
Browse files

Add git merging commands/info

parent ee9cbddb
No related branches found
No related tags found
No related merge requests found
...@@ -17,6 +17,8 @@ Eine Tabelle zur Übersicht der verwendeten Befehle ...@@ -17,6 +17,8 @@ Eine Tabelle zur Übersicht der verwendeten Befehle
| `git branch <BRANCH> [<BRANCH/COMMIT>]` | Erstellen einer neuen Branch | `git branch <BRANCH> [<BRANCH/COMMIT>]` | Erstellen einer neuen Branch
| `git branch -d` | Löschen einer lokalen Branch | `git branch -d` | Löschen einer lokalen Branch
| `git checkout` | Zu einer anderen Branch wechseln | `git checkout` | Zu einer anderen Branch wechseln
| `git merge` | Zusammenführen von zwei Branches mit einem Merge-Commit
| `git rebase` | Zusammenführen von zwei Branches durch anhängen der Commits
## Projekterstellung ## Projekterstellung
...@@ -704,6 +706,160 @@ c1 <- c2 <- c3 <- c4 <- c5 ...@@ -704,6 +706,160 @@ c1 <- c2 <- c3 <- c4 <- c5
</table> </table>
### Merging
In einem **Git Repository** kann es verschiedene Branches mit unterschiedlichen Dokumenten/Verzeichnissen geben.
Um einen eindeutigen Projektstand wiederherzustellen, können Branches zusammengefügt werden.
Häufig werden Branches wieder mit einer **Hauptbranch** zusammengefügt, die dann wieder als Ausgangspunkt für neue Branches dient.
Das Zusammenfügen von zwei Branches kann mit `git merge` oder `git rebase` erfolgen.
**Merge:**\
Mit `git merge` entsteht ein neuer Commit auf der aktuellen Branch.
Der Merge-Commit beinhaltet beide Branches als Vorgänger.
**Rebase:**\
Mit `git rebase` werden die Commits einer Branch ans ende der aktuellen Branch "geschoben".
Dabei wird der Abzweig mit den Commits entfernt.
<table>
<tr>
<th> Commits und Branches </th>
<th> Git Befehl - Mergen einer Branch </th>
</tr>
<tr>
<td>
```
c3 <- c4 b1
/
c1 <- c2 <- c5 <-c6 main
```
</td>
<td>
<!--- Merging Table -->
<table>
<tr>
<td>
- Mergen einer Branch (*b1*) in die aktuelle Branch (*main*)
```
git checkout main
git merge b1
```
</td>
<td>
- Mergen einer Branch (*main*) in die aktuelle Branch (*b1*)
```
git checkout b1
git merge main
```
</td>
</tr>
<tr>
<td>
- Resultat:
```
c3 <- c4 <----- b1
/ \
c1 <- c2 <- c5 <-c6 <- c7 main (*)
```
</td>
<td>
- Resultat:
```
c3 <- c4 <- c7 b1 (*)
/ /
c1 <- c2 <- c5 <-c6 main
```
</td>
</tr>
</table>
</td>
</tr>
</table>
<table>
<tr>
<th> Commits und Branches </th>
<th> Git Befehl - Mergen einer Branch </th>
</tr>
<tr>
<td>
```
c3 <- c4 b1
/
c1 <- c2 <- c5 <-c6 main
```
</td>
<td>
<table>
<tr>
<td>
- Rebase Commits von der aktuellen Branch (*main*) auf die angegebene Branch (*b1*)
```
git checkout main
git rebase b1
```
</td>
<td>
- Rebase Commits von der aktuellen Branch (*b1*) auf die angegebene Branch (*main*)
```
git checkout b1
git rebase main
```
</td>
</tr>
<tr>
<td>
- Result:
```
b1
V
c3 <- c4 <- c5 <- c6 main (*)
/
c1 <- c2
```
</td>
<td>
- Result:
```
main
V
c1 <- c2 <- c5 <-c6 <- c3 <- c4 b1 (*)
```
</td>
</tr>
</table>
</td>
</tr>
</table>
## Add your files ## Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files - [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment