Używam git w VSCodium i za każdym razem, gdy próbuję wyciągnąć git, narzeka.
Patrząc w dziennik, który widzę
> git pull --tags origin master
From https://github.com/MY/REPO
* branch master -> FETCH_HEAD
! [rejected] latest -> latest (would clobber existing tag)
9428765..935da94 master -> origin/master
Wykonanie polecenia z --force
pomaga do następnego razu.
Nie jest dla mnie jasne, co się tutaj dzieje. Co się stało i jak mogę rozwiązać ten problem?
Mam na myśli: Oprócz skasowania mojego lokalnego repozytorium i ponownego klonowania.
Ponieważ mówisz, że nie jest jasne, co się dzieje, zakładam, że nie używasz tego tagu do niczego i chcesz po prostu wykonać własną pracę.
Wyłącz to ustawienie:
Teraz wszystko gotowe.
Szczegółowe wyjaśnienie:
Tagi są po prostu odniesieniami do konkretnych zatwierdzeń (podobnie jak nazwy gałęzi). Główna różnica polega na tym, że
git
(o ile wiem) zakłada, że tagi się nie zmienią, w przypadku których oczekuje się aktualizacji gałęzi.Tak więc "błąd" polega na tym, że masz w swoim lokalnym znacznik o nazwie
latest
wskazujący na zatwierdzenie X - ale pilot ma znacznik o nazwielatest
wskazujący na zatwierdzenie Y. Jeśli zastosujesz zmianę z pilota, nadpiszesz swój lokalny znacznik.VSCode domyślnie pobierze wszystkie tagi, więc pojawi się błąd.
Nie ma nic złego w posiadaniu „ruchomego” tagu
latest
, który po prostu nie jest czymś, co VSCode bierze pod uwagę (osobista opinia).Alternatywnie możesz uniknąć tego problemu, używając wiersza poleceń i ręcznie wprowadzając
git pull
polecenie. W szczególności musisz--tags
pominąć ten krok procesu.Jeśli to zrobisz, Twoje tagi nie zostaną zaktualizowane - ale nie sądzę, żeby było to problemem.
źródło