Files
Git-Schulung/04-merge-und-konflikte/aufgabe.md
T

2.8 KiB
Raw Blame History

📝 Aufgabe 04 Merge & Konflikte

In dieser Aufgabe provozierst du absichtlich einen Merge-Konflikt und löst ihn auf. Das ist der beste Weg, um Konflikte zu verstehen bevor sie im echten Projekt auftreten!


Ausgangssituation

Lege ein neues Repo an:

mkdir konflikt-uebung
cd konflikt-uebung
git init

Kopiere die Datei konflikt-vorlage.txt in den Ordner (oder erstelle sie neu):

cp ../04-merge-und-konflikte/konflikt-vorlage.txt .
git add konflikt-vorlage.txt
git commit -m "chore: Vorlage hinzugefügt"

Aufgabe

1. Ersten Feature-Branch anlegen

git switch -c feature/version-a

Öffne konflikt-vorlage.txt und ändere Zeile 3 ([HIER ÄNDERN]) zu:

Dies ist Version A  geändert von Branch feature/version-a.

Committe die Änderung:

git add konflikt-vorlage.txt
git commit -m "feat: Version A in Zeile 3 eingetragen"

2. Ersten Branch in main mergen (Fast-Forward)

git switch main
git merge feature/version-a

Da main sich nicht verändert hat, ist das ein Fast-Forward-Merge kein Konflikt.

3. Zweiten Feature-Branch anlegen

Erstelle vom aktuellen Stand von main einen zweiten Branch:

git switch -c feature/version-b

Öffne konflikt-vorlage.txt und ändere dieselbe Zeile 3 zu:

Dies ist Version B  geändert von Branch feature/version-b.

Committe die Änderung:

git add konflikt-vorlage.txt
git commit -m "feat: Version B in Zeile 3 eingetragen"

4. Auch main verändern (Konflikt vorbereiten)

git switch main

Öffne konflikt-vorlage.txt und ändere Zeile 3 nochmals zu:

Dies ist die main-Version  direkt auf main geändert.

Committe:

git add konflikt-vorlage.txt
git commit -m "fix: Zeile 3 auf main angepasst"

5. Konflikt provozieren

Merge feature/version-b in main:

git merge feature/version-b

Git meldet einen Konflikt. Öffne konflikt-vorlage.txt und schau dir die Konfliktmarker an.

6. Konflikt auflösen

Entscheide dich für eine Version (oder kombiniere beide) und entferne alle Konfliktmarker. Dann:

git add konflikt-vorlage.txt
git commit -m "fix: Merge-Konflikt in konflikt-vorlage.txt aufgelöst"

7. Ergebnis prüfen

git log --oneline --graph

Du solltest einen Merge-Commit mit zwei Eltern-Commits sehen.


Erfolgskriterien

  • Der Fast-Forward-Merge (Schritt 2) hat keinen Merge-Commit erstellt
  • git merge feature/version-b hat einen Konflikt gemeldet
  • Du hast die Konfliktmarker in der Datei gesehen (<<<<<<<, =======, >>>>>>>)
  • Der Konflikt ist aufgelöst und committed
  • git log --oneline --graph zeigt einen Merge-Commit mit zwei Linien
  • git status zeigt nothing to commit, working tree clean