Mój problem jest związany z błędem Fatal Git podczas przełączania gałęzi .
Próbuję pobrać gałąź zdalną za pomocą polecenia
git checkout -b local-name origin/remote-name
ale pojawia się ten komunikat o błędzie:
fatal: git checkout: aktualizacja ścieżek jest niezgodna z przełączaniem gałęzi.
Czy planowałeś wyewidencjonować „origin / remote-name”, którego nie można rozpoznać jako zatwierdzenie?
Jeśli ręcznie utworzę gałąź, a następnie wyciągnę gałąź zdalną, działa to tak samo, jak tworzenie nowego klonu i sprawdzanie gałęzi.
Dlaczego nie działa w repozytorium, z którym pracuję?
Odpowiedzi:
Wydaje mi się, że dzieje się tak, gdy próbujesz wyewidencjonować zdalną gałąź, o której lokalne repozytorium git jeszcze nie wie. Próbować:
Jeśli gałąź zdalna, którą chcesz pobrać, znajduje się w obszarze „Nowe gałęzie zdalne”, a nie „Śledzone gałęzie zdalne”, musisz je najpierw pobrać:
Teraz powinno działać:
źródło
git fetch
otrzyma wszystkie gałęzie ze wszystkich zdalnych repozytoriów.git remote update
zanim pobieranie pobierze ten pilot. W przeciwnym razie otrzymujesz wiadomości, takie jak:Did you intend to checkout 'upstream-repo/master' which can not be resolved as commit?
Dodaj to do odpowiedzi i zaoszczędź godziny pracy na czytaniu tych samych odpowiedzi, które działają tylko dla pochodzenia.Alternatywna składnia,
źródło
--depth
kwalifikator oryginalnego klonu mógł być tutaj winny. Miałem sukces,git fetch remote_branch_name:local_branch_name
ale wszystkie inne porady zawiodły.Po wypróbowaniu większości tego, co mogłem przeczytać w tym wątku, bez powodzenia, natknąłem się na ten: zdalna gałąź nie pojawia się w „git branch -r”
Okazało się, że mój plik .git / config był niepoprawny. Po wykonaniu prostej naprawy pojawiły się wszystkie gałęzie.
Idę z
do
Wykonał lewę
źródło
Nie jestem pewien, czy jest to pomocne lub ściśle związane z pytaniem, ale jeśli próbujesz pobrać i pobrać tylko jedną gałąź ze zdalnego repozytorium, następujące polecenia git załatwią sprawę:
źródło
żadne z powyższych nie działało dla mnie. Moja sytuacja jest nieco inna, moja zdalna gałąź nie jest początkowa . ale w innym repozytorium.
wskazówka: jeśli nie widzisz zdalnej gałęzi w poniższym wyjściu,
git branch -v -a
nie ma możliwości jej sprawdzenia.Potwierdzono pracę nad 1.7.5.4
źródło
git branch -v -a
: miałem niepoprawnie skonfigurowanego pilota, który powiedział,fetch = +refs/heads/*:refs/remotes/master/*
mimo że pilot został wywołanyupstream
.Dla mnie zadziałało:
Który ściąga wszystkie referencje do twojego komputera dla wszystkich gałęzi na pilocie. Wtedy mógłbym zrobić
i to działało idealnie. Podobne do najczęściej głosowanej odpowiedzi, ale nieco prostsze.
źródło
Podejrzewam, że nie ma zdalnej gałęzi o nazwie nazwa-zdalna, ale że przypadkowo utworzyłeś gałąź lokalną o nazwie pochodzenie / nazwa-zdalna.
Czy to możliwe, że w pewnym momencie napisałeś:
W ten sposób tworzysz lokalny oddział o nazwie origin / remote-name? Wpisz to polecenie:
Albo zobaczysz:
co oznacza, że to naprawdę źle nazwany oddział lokalny lub
co oznacza, że tak naprawdę jest to gałąź zdalna.
źródło
To nie jest bardzo intuicyjne, ale działa dobrze dla mnie ...
Następnie uruchom komendę git --track ...
źródło
Miałem literówkę, a moja zdalna gałąź nie istniała
Służy
git branch -a
do wyświetlania zdalnych gałęziźródło
Czy twój problem może być powiązany z innym pytaniem SO „problem z kasą” ?
tj .: problem związany z:
git checkout -b [<new_branch>] [<start_point>]
w[<start_point>]
odniesieniu do nazwy zatwierdzenia, przy której należy uruchomić nową gałąź, i'origin/remote-name'
tak nie jest.(podczas
git branch
gdy obsługuje punkt początkowy będący nazwą zdalnego oddziału)Uwaga: skrypt checkout.sh mówi:
To tak, jakby składnia git checkout -b [] [nazwa_gałęzi_zdalnej] zarówno zmieniała nazwę gałęzi, jak i resetowała nowy punkt początkowy nowej gałęzi, co uznaje się za niezgodne.
źródło
Po pobraniu zillion razy jeszcze dodane piloty nie pojawiły się, chociaż obiekty BLOB były w puli. Okazuje się, że z jakiejkolwiek przyczyny nie należy podawać opcji --tags
git remote add
. Możesz ręcznie usunąć go z .git / config, aby git fetch utworzył odnośniki.źródło