2012-11-03 10 views
16

Ich bin ein Neuling für Github und begann mit GITHUB für WINDOWS ausgewählten privaten Repositories und teilte das gleiche mit meinen Kollegen.GITHUB Conflict Resolving

Jetzt haben wir ein Problem, nicht sicher, wie es zu lösen ist. Wir haben versucht, Google und keine Verwendung.

Ich und ein Kollege arbeiteten an einer Datei gleichzeitig, er hat vor mir begangen. Ich mag die Änderungen, die er gemacht hat, und ich möchte seine Änderung mit meiner lokalen Datei zusammenführen und möchte schließlich meine Version begehen. Ist es möglich, dass GITHUB GITHUB für Windows verwendet? Ich habe das gleiche getan, bevor mit Tortoise SVN

I-Shell-Eingabeaufforderung eröffnete und versucht, so etwas wie

$ git diff 

Aber es zeigt nur die Unterschiede und nicht hat mir geraten, lokalen zu fusionieren mit Version inszeniert ..

Antwort

19

Wenn Sie auf die Schaltfläche sync klicken, werden Änderungen vorgenommen, die Ihre Freunde vorgenommen und online geschaltet haben. Wenn Änderungen nicht sauber zusammengeführt werden, werden Sie gefragt, ob ein Konflikt aufgetreten ist. Dadurch fügen Sie Konfliktlinien in Ihre Dateien ein, wo Sie sie lösen müssen. Danach müssen Sie nur die Änderungen bestätigen.

Die konfliktbehafteten Zeilen sollten in der Github für Windows-Schnittstelle angezeigt werden (obwohl ich nicht 100% sicher bin, bevorzuge ich eigentlich Konfliktlösung über die Befehlszeile).

von Befehlszeile, werden Sie Befehl als so eingeben müssen:

git pull 
# If merge conflict, you'll be prompt to resolve them, git will list conflicted files 
# Open those files in you editor and resolve conflicts. Line will be marked in the files. 
# When all is resolved : 
git add -A 
git commit 
# No need to enter a message, git will automatically fill the message with 
# merge conflict specific information 
git push 

In Ihrer Dateien, wird der Konflikt Marker wie folgt aussehen:

<<<<<<<<<<< [sha-1 of the commit] 
function() { 
================== 
function(hey) { 
HEAD>>>>>>>>>>>>> 
+3

Für diese Situation würde ich vorschlagen "git add -u" anstatt "git add -A" (oder besser, 'git commit -a'). Es gibt nur eine Datei von Interesse, die sich bereits im Repository befindet. – Andy

+2

Du bist mein Held. Warum konnte ich das nirgendwo online finden? – ClickerMonkey

1

In meinem Fall ist es Es stellte sich heraus, dass ich es versäumt habe, ein vorheriges Commit zu synchronisieren, bevor ich versuchte, das nächste zu synchronisieren.

Keine Konfliktlösung erforderlich.

fand ich es auch interessant, dass alle Differenzblöcke

<<<<<<<<<<<<<<<<<... 
... 
====================== 
... 
HEAD>>>>>>>>>>>>>> 

in Code Ihre Quelle tatsächlich platziert werden. Öffnen Sie einfach die konfliktbehaftete Datei in einem Texteditor und behalten/löschen Sie die gewünschte Verzweigung.