---
# System prepended metadata

title: 'Aufgabe 2: Branch & Pull Request'

---

# Aufgabe 2: Branch & Pull Request


1. Pulle die Änderungen von remote `main` auf Deinen Rechner. 

```$ git pull```

2. Erstelle einen Branch mit dem Namen "development", der als Arbeitsbereich für die Entwicklung einer neuen Funktion dienen wird.

```$ git branch development```

2. Wechsle auf den neuen Branch und pushe ihn nach Remote.

```$ git checkout development```
```$ git push -u origin development```

3. Überprüfe die Anzahl der Branches in Deinem Repository auf Github. 

4. Schreibe ein paar Zeilen in `tutorial.md` in der lokalen Datei. Wie musst du weiter verfahren, um die lokale Änderung mit Remote zu synchronisieren?


5. Checke das Log!

```$ git log```

6. Vergleiche den Zustand der Datei `tutorial.md` auf beiden Branches auf Github. 



7. Bringe die Änderungen von `development` auf `main` mit einem Pull Request und anschließendem Merge:

In deinem Repository auf Github, öffne den Reiter `Pull requests`. Meistens wird der Branch auf dem die aktuellste Änderung stattfand angezeigt, klicke auf `Compare and pull request` um einen Pull request zu öffnen.

Auf der Seite kannst Du einen Titel und eine Beschreibung hinzufügen und deine Änderungen nochmal als diff überprüfen. Klicke auf `Create pull request`. 

Klicke auf der folgenden Seite auf `Merge pull request`. 


Wechsle zurück zum `main` Branch.

```
$ git checkout main
```

Der `development` Branch kann jetzt gelöscht werden. Bei github wird das per Button gemacht, lokal mit folgendem Befehl:

```
$ git branch -d development
```

8. Überprüfe den Inhalt der Datei `tutorial.md` auf `main`. Die Datei sollte jetzt nicht mehr leer sein.

9. Wechsle lokal auf `main` und überprüfe das log!

```$ git checkout main```
```$ git log```

Fehlt hier etwas?


11. Pulle die Änderungen von remote `main` auf Deinen Rechner. Überprüfe das log noch einmal. 

```$ git pull```
```$ git log```
