2012-11-03 25 views
16

Jestem początkującym użytkownikiem github i zacząłem używać GITHUB dla WINDOWS wybranych prywatnych repozytoriów i udostępniłem to samo moim kolegom.Rozwiązywanie konfliktów GITHUB

Teraz mamy problem, nie wiem, jak go rozwiązać. Próbowaliśmy google i nie używamy.

Ja i mój kolega pracowaliśmy nad tym samym plikiem w tym samym czasie, on popełnił przede mną. Chciałbym poznać zmiany, które wprowadził i chcę scalić jego zmiany z moim lokalnym plikiem i wreszcie chcę zatwierdzić moją wersję. Czy jest to możliwe z GITHUB używając GITHUB dla Windows? Zrobiłem to samo, zanim z tortoisesvn

Otworzyłem wiersz poleceń powłoki i próbował coś podobnego

$ git diff 

Ale to tylko pokazuje różnice i nie poradził mi, aby połączyć się z lokalnym wystawił wersję ..

Odpowiedz

19

Jeśli naciśniesz przycisk sync, będziesz ciągnąć zmiany, które Twoi znajomi zrobili i pchnąć online. Jeśli zmiany nie zostaną scalone w czysty sposób, pojawi się monit o wystąpienie konfliktu. Spowoduje to dodanie linii konfliktu do twoich plików, gdzie będziesz musiał je rozwiązać i rozwiązać. Następnie musisz zatwierdzić zmiany.

Kolidujące linie powinny pojawić się w interfejsie Github dla systemu Windows (chociaż nie jestem w 100% pewien, wolę rozwiązywać konflikt za pomocą wiersza poleceń).

poprzez linię poleceń, musisz wpisać komendę jako tak:

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 

w plikach, marker konflikt będzie wyglądać następująco:

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

W tej sytuacji sugeruję 'git add -u' zamiast" git add -A "(lub lepiej,' git commit -a'). Istnieje tylko jeden plik zainteresowania, który wydaje się być już w repozytorium. – Andy

+2

Jesteś moim bohaterem. Dlaczego nie mogłem znaleźć tego w Internecie? – ClickerMonkey

1

W moim przypadku, to Właśnie się okazało, że zignorowałem zsynchronizowanie poprzedniego zatwierdzenia przed próbą zsynchronizowania następnego.

Brak konieczności rozwiązywania konfliktów.

Znalazłam też to ciekawe, że wszystkie bloki różnica

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

są właściwie umieszczone w kodzie źródłowym. Wystarczy otworzyć plik będący w konflikcie w edytorze tekstu i zachować/usunąć żądaną gałąź.

Powiązane problemy