Wenn du Veränderungen an einer Datei vornimmst, und Christian auch und das ganze dann zusammengefügt wird, dann meldet Git in der Regel einen Konflikt, was erstmal nur heißt, dass ein Mensch sich das angucken muss und entscheiden muss, welche Version der Datei denn bestehen bleiben soll.
##Die händische Variante: Du öffnest die Datei einfach, und suchst nach "<<<<<<<". Vermutlich findest du so etwas:
<<<<<<< HEAD
Auf ADN: <a href="http://alpha.app.net/supicast">@supicast</a>
=======
Auf ADN:<br />
<a href="http://alpha.app.net/demo" rel="me">@demo</a>
>>>>>>> master
Was zwischen "<<<<<<< HEAD" und "=======" steht, ist dein Stand der Datei, was zwischen "=======" und ">>>>>>> master" steht, ist der Stand der Datei in dem branch, mit dem du mergen willst (in diesem Beispiel: master).
Du musst nun die Datei so bearbeiten, wie sie deines Erachtens am Ende aussehen soll. Es gibt jetzt verschiedene Szenarien:
- Wenn du Christians Änderung ignorieren willst und deine Version behalten willst, dann entfernst du alles von "=======" bis">>>>>>> master" und das "<<<<<<< HEAD". Übrig bleibt:
Auf ADN: <a href="http://alpha.app.net/supicast">@supicast</a>
- Wenn Du lieber Christians Version behalten und deine verwerfen willst: Dann entfernst du alles von "<<<<<<< HEAD" bis "=======" und das ">>>>>>> master". Übrig bleibt:
Auf ADN:<br />
<a href="http://alpha.app.net/demo" rel="me">@demo</a>
- Oder es ist eine Mischung aus beidem. In diesem Beispiel würdest du vielleicht sagen, dass Christians Änderung an der Funktionalität gut ist (Zeilenumbruch und das "rel=me" Attribut dem Link hinzugefügt), du aber dennoch deine eigenen Daten statt der Demodaten drinhaben willst. Am Ende stünde:
Auf ADN:<br />
<a href="http://alpha.app.net/supicast" rel="me">@supicast</a>
Wie auch immer du dich entscheidest, am Ende muss bei jeder Datei, in der Konflikte markiert sind, der Zustand hergestellt werden, den du haben willst, und die ganzen Steuerzeichen ("=======", ">>>>>>> master" , "< <<<<<< HEAD") müssen entfernt sein. Dann das ganze noch committen:
git commit -a
Mit Tools:
Es gibt auch diverse Tools, die einem helfen, das ganze komfortabler über die Bühne zu bringen. Ich mag keins davon, aber vielleicht ist das bei dir anders.
Gib mal git mergetool
in der Konsole ein. Git hat eine interne Liste mit geeigneten Tools und prüft jetzt, ob eins davon installiert ist. Falls ja, wird es direkt gestartet, falls nein, zeigt es dir die Liste und du kannst die einzelnen Tools dann installieren und ausprobieren. Vielleicht ist da was dabei, das dir zusagt.
##Zum Nachlesen: http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts