2010-07-08 14 views
49

Połączyłem psa oddziału ze zwierzęciem. Kiedy idę, aby zatwierdzić, otrzymuję następujące informacje:Git unmerged path issue

Na krótką historię miałem różne nazwy katalogów i nazwy plików w każdym oddziale. Gałąź zwierząt ma zmiany, które chcę.

Kiedy idę, aby zresetować głowicę, to nie działa. I kiedy idę, aby podjąć jakąkolwiek inną akcję git (usunięcie, pobranie kasy itd.), Pojawia się błąd braku ścieżki.

Jakie polecenia muszę wykonać?

Odpowiedz

51

Wszystko powinno trzeba zrobić, to:

# if the file in the right place isn't already checked in 
git add <path to desired file> 
# remove the "both deleted" file from the index 
git rm --cached ../public/images/originals/dog.ai 

git commit   # commit the merge 
+0

przydałoby się dodatkowe wyjaśnienie: –

33

Innym sposobem radzenia sobie z tą sytuacją, jeśli pliki zostały już sprawdzone w, a pliki zostały scalone (ale nie popełnione, tak scalania konflikty są wstawiony do pliku) jest prowadzony:

git reset 

ten przełączy się głowę i powiedzieć git zapomnieć każdy scalić konfliktów i pozostawić katalog roboczy, jak jest. Następnie możesz edytować pliki, o których mowa (szukaj ogłoszeń "Upstream"). Po rozwiązaniu konfliktów można uruchamiać funkcje, które umożliwiają interaktywne wybieranie zmian, które mają zostać dodane do indeksu. Gdy wskaźnik wygląda dobrze (git diff --cached), można popełnić, a następnie

git reset --hard 

zniszczyć wszystkie niepożądane zmiany w katalogu roboczym.

+0

Co to jest "Powiadomienia o uaktualnieniu"? – saikosen

+2

@takias: znaczniki w każdym pliku, które wyglądają jak: '<<<<<<< [gałąź] \ n [zawartość] \ n ==== \ n [zawartość] \ n [gałąź] >>>>> >> '. Wydaje mi się, że format ten odniósł niewielkie wrażenie, odkąd to napisałem, ale przejrzyj https://wincent.com/wiki/Git_merge_conflict_cheatsheet na przykład. – naught101