Zusammenführungskonflikt in .gitignore

Lesezeit: 3 Minuten

Ich habe 2 Filialen, master und newfeature. Wenn ich zusammenführen möchte newfeature hinein masterIch benutzte:

git checkout master
git merge newfeature

Ich bekomme den Fehler:

Auto-merging .gitignore
CONFLICT (content): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

Ich habe mich geöffnet .gitignore und es sieht jetzt wie ein Chaos aus, wenn der letzte Teil der Datei so aussieht

<<<<<<< HEAD
public/img/ignore
=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

Was ist passiert, und wie sollte dies behoben werden, damit ich den Zweig in zusammenführen kann master?

Sie haben die .gitignore-Datei in beiden Branches bearbeitet. Jetzt ist sich git nicht sicher, welche Zeilen in jeder Kopie die richtigen sind, also fordert es Sie auf, sie zu lösen.

Die Linien:

<<<<<<< HEAD
public/img/ignore
=======

Was erscheint in der Kopie der Datei im Master.

Und

=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

im Zweig newfeature

Sie müssen die Datei nur so bearbeiten, wie Sie sie am Ende haben möchten. Dann…

git add .gitignore
git commit

Benutzer-Avatar
Lukasz Strzałkowski

Einfach bearbeiten .gitignore Datei zur Konfliktlösung:

Vor

<<<<<<< HEAD
public/img/ignore
=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

Nach

public/img/ignore
public/img/profiles
public/blog
public/recommendation

Dann:

git add .gitignore

git commit

Die automatisch generierte Commit-Nachricht sollte erscheinen, akzeptieren Sie sie (speichern und schließen) und fertig.

Beheben Sie die Konflikte in der .gitignore Datei, füge die aktualisierte Version hinzu und übertrage dann:

vim .gitignore
# assuming you want all 4 lines: simply remove the conflict markers (<<<<<<, ======, and >>>>>)
git add .gitignore
git commit

Was passiert ist, ist, dass es einen Merge-Konflikt gab: Zwei Branches haben die Datei “gleichzeitig” in unterschiedlichen Streams geändert. Sie können die Änderungen sehen, die der andere Zweig im Abschnitt “newfeature” und der andere im Abschnitt HEAD vorgenommen hat.

Was Sie tun müssen, ist, diese Datei so zu bearbeiten, dass sie den gewünschten Inhalt enthält, den zu verfolgenden hinzuzufügen und ihn dann festzuschreiben. Dies wird als Merge-Commit bezeichnet.

Nun, was ich oben gesagt habe, ist eine Zusammenführung von Hand, “manuell”. Es ist möglicherweise am einfachsten zu verstehen. Sie können auch verwenden git mergetool Befehl, um dies mit einem visuellen Tool zu tun, falls konfiguriert, oder verwenden Sie “git merge” mit einer Strategie, die ihm sagt, wie es mit dem Konflikt umgehen soll.

Verwenden git mergetool um den Konflikt zu lösen (oder ihn einfach selbst manuell zu beheben; dies ist kein besonders schwieriger Fall zu lösen), dann führen Sie einen erneuten Commit durch.

Benutzer-Avatar
Alex

Sie sollten Ihre .gitignore-Datei von Hand zusammenführen und dann zum Index hinzufügen

$ git add .gitignore

Die Grundlagen zum Zusammenführen finden Sie hier:
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

Benutzer-Avatar
dureuill

Die automatische Zusammenführung von Git ist fehlgeschlagen. Dies passiert normalerweise, wenn Änderungen an derselben Datei gleichzeitig in verschiedenen Branches/Repositories auftreten, wenn versucht wird, Branches/Push-Inhalte zusammenzuführen.

Die Änderungen, die an .gitignore im Branch newfeature vorgenommen wurden, kollidieren mit denen, die auf master vorgenommen wurden. Die Linie: <<<<<<< HEAD gibt die am Master vorgenommenen Änderungen an, die dieser Zeile folgen, während die Zeile >>>>>>> newfeature gibt die an newfeature vorgenommenen Änderungen an, die dieser Zeile vorangehen. Die beiden Modifikationen werden durch getrennt =======.

Sie sollten die Datei manuell bearbeiten und das Nützliche in jedem der beiden Teile beibehalten/zusammenführen. Dann sollten Sie committen (nach dem Entfernen der <<<<HEAD , ===== und >>>newfeature Linien).

1226900cookie-checkZusammenführungskonflikt in .gitignore

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy