2012-04-29 17 views
6

Ja i mój przyjaciel widelec z głównego repozytorium (upstream). Zeszłej nocy mieliśmy tę samą wersję tego repozytorium na komputerze lokalnym. Potem dodałem nową funkcję, a mój przyjaciel również dodał kolejną nową funkcję. Mój przyjaciel wysłał żądanie do głównego repozytorium i połączyłem to żądanie ściągania z repozytorium upstream bez żadnych konfliktów. A kiedy pobieżę z kanału i połączę się z moją główną gałęzią, to się kłóci. Co powinienem zrobić w tej sytuacji, aby rozwiązać konflikt? (Repozytorium upstream powinno mieć 2 nowe funkcje po rozwiązaniu konfliktu)Konflikt seryjny Git

Odpowiedz

4

Po prostu przejrzyj pliki oznaczone jako będące w konflikcie przez git status i znajdź znaczniki konfliktu (możesz wyszukać w pliku ====). Uzgodnij zmiany między nimi, sprawdź, czy coś nieoczekiwanego zostało zerwane przez kombinację kodu, uruchom testy, a następnie użyj normalnie git add i git commit, aby dokonać zatwierdzenia scalenia nowej funkcji Twojego znajomego z twoją.

Upstream: original     with friend's feature   with both 
       \ \    /    \    /
       \ -- Friend's --/     \   /
       \         \   /
        ---- Yours ------------------------- your merge 
+0

Dziękuję, informacja ta jest bardzo pomocna. –

1

Można wpisać git difftool path/filename w konsoli, aby użyć narzędzia do rozwiązywania konfliktów lub użyć oprogramowania Git, który rozwiązywanie konfliktów zbudowany w. Bardzo podoba mi SmartGit (od twórców SmartSVN) i TortoiseGit (bardzo podobny do TortoiseSVN).

10

pamiętać, że można również rozwiązać bezpośrednio konflikt scalania z Eclipse/Egit samego:
Patrz „Egit: Solving Merge Conflicts”:

można ręcznie edytować tekst po lewej stronie lub użyć kopii aktualnej zmiany od od prawej do lewej, aby skopiować sprzeczne zmiany z prawej na lewą.

Następnym krokiem jest z menu kontekstowego pliku, aby wybrać Zespół -> Dodaj do indeksu. Następnie zatwierdz.

merge conflict resolution in EGit

+0

Zobacz także http://stackoverflow.com/questions/11674950/how-to-do-an-ours-merge-using-the-eclipse-git-merge-tool jako przykład użycia tego narzędzia. – VonC