2016-03-18 23 views
9

GIT nadal zawstydzić mnie z jego nieprzydatny ostrzeżeń o błędach :( To naprawdę zasługuje na nagrodę:Git seryjnej nie jest możliwe, ponieważ mam niezłączonych plików

„git scalania nie jest możliwe, ponieważ masz pliki niezłączonych”

Moja sytuacja. Mój mistrz oddział na github był edytowany (bezpośrednio w przeglądarce), podczas gdy mój lokalny oddział mistrz został także stworzony

Głupio, mam może po prostu połączyć dwie wersje i być z nim zrobić, ale, niestety, nie mogę się połączyć - ponieważ moje pliki są rozpakowywane

git merge remote/master 

skutkuje

error: merge is not possible because you have unmerged files. 
hint: Fix them up in the work tree, and then use 'git add/rm <file>' 
hint: as appropriate to mark resolution and make a commit. 
fatal: Exiting because of an unresolved conflict. 

Więc, po dodaniu i popełnienie lokalną zmianę, a następnie próbuje się ponownie połączyć, otrzymuję:

merge: remote/master - not something we can merge 

Wyraźnie brakuje mi coś istotnego tutaj. .. Czy mam złe pojęcie o tym, co oznacza scalanie? Jak naprawić ten problem z posiadaniem innej zdalnej głównej/lokalnej gałęzi głównej?

Odpowiedz

5

Komunikat o błędzie:

seryjnej: zdalne/master - nie coś, co możemy połączyć

mówi, że Git nie rozpoznaje remote/master. Jest tak prawdopodobnie dlatego, że nie masz "zdalnego" o nazwie "remote". Masz "zdalny" nazwany "pochodzenie".

Pomyśl o "pilotach" jako o aliasach adresu URL do serwera Git. master to lokalnie wyrejestrowana wersja oddziału. origin/master to najnowsza wersja master z Twojego serwera Git, którą pobrałeś (pobrano). A fetch jest zawsze bezpieczny, ponieważ zaktualizuje tylko wersję "origin/x" twoich oddziałów.

Tak więc, aby uzyskać master gałąź z powrotem w synchronizacji, najpierw pobrać najnowszą zawartość z serwera git:

git fetch 

Następnie wykonać Merge:

git merge origin/master 

... Ale, być może lepszym podejściem byłoby:

git pull origin master 

Polecenie pull zrobi i merge dla Ciebie w jednym kroku.

+0

Dzięki Nie zdawałem sobie sprawy, że pull również się łączy. Zrobiłem spięcie i scalenie, ale nic się nie dzieje - chociaż git mówi teraz, że wszystko jest na czasie. Spodziewałem się, że scalenie wykaże "konflikt scalania", w którym trzeba ręcznie edytować zmiany, które chcesz zachować? – Kokodoko

+0

W tym przypadku wygląda na to, że Git był w stanie osiągnąć dla ciebie różnicę w rozdzielczości ... aby mieć pewność, że podjąłeś to, co zamierzałeś, dobrym narzędziem "sprawdzania poprawności", którego często używam, to "gitk". Pochodzi z instalacją Git, więc powinieneś już ją mieć. Po prostu wpisz "gitk" na swoim terminalu poleceń dla widoku typu GI twojego drzewa Git. –

+0

Scalono wstawione komentarze w moim pliku, które wyglądają tak: <<<<<<< HEAD key: 7234095827345093458. Być może git nie mógł znaleźć mojego narzędzia FileMerge i wstawił te kody, aby rozwiązać je w edytorze tekstu? – Kokodoko

0

wpadłem na ten sam problem i nie mógł się zdecydować między śmiechem lub rozbijając głowę na stole, kiedy czytam ten błąd ...

Co git naprawdę stara się powiedzieć: „Jesteś już w sposób połączyć stan i najpierw rozwiązać konflikty! "

Próbowałeś scalenia i wystąpił konflikt.Następnie git pozostaje w stanie scalenia i jeśli chcesz rozwiązać połączenie z innymi poleceniami git myśli, że chcesz wykonać nowe scalenie, a więc mówi ci, że nie możesz tego zrobić z powodu bieżących niezmielonych plików ...

Możesz opuścić ten stan za pomocą git merge --abort, a teraz spróbuj wykonać inne polecenia.

W moim przypadku Próbowałem ciągnąć i chciał rozwiązać konflikty ręcznie gdy błąd ...

+0

Dobra historia, ale nie widzę, czy istnieje prawdziwa odpowiedź na problem określony w pytaniu tutaj :) – BartoszKP

+0

Dobrze wiedzieć Nie jestem jedyny, który jest nieustannie zaskoczony tajemniczym błędem Gita wiadomości. – Kokodoko

0

ja wielokrotnie miał thesame czasami wyzwanie temu, problem ten występuje głównie, gdy trzeba wyciągnąć z zdalne repozytorium i niektóre pliki w lokalnej instancji są w konflikcie z wersją zdalną, jeśli używasz git z IDE takiego jak intelliJ, zostaniesz poproszony i będziesz mógł dokonać wyboru, jeśli chcesz zachować własne zmiany lub wolisz zmiany w wersji zdalnej, aby nadpisać twoje ". Jeśli nie dokonasz wyboru, wpadniesz w ten konflikt. Wszystko, co musisz zrobić, to uruchomić:

git scalić --abort # nierozwiązany konflikt zostanie obroniona

i można kontynuować, co robiłeś przed przerwą