Czasami używam checkout -b
opcji, aby utworzyć nowy oddział, sprawdzić go w tym samym czasie i skonfigurować śledzenie w jednym poleceniu.
W nowym środowisku pojawia się ten błąd:
$ git checkout -b test --track origin/master
fatal: Cannot update paths and switch to branch 'test' at the same time.
Did you intend to checkout 'origin/master' which can not be resolved as commit?
Dlaczego Gitowi się to nie podoba? To kiedyś działało z tym samym repozytorium.
git
git-checkout
marekful
źródło
źródło
origin/master
nie jest to identyfikator zatwierdzenia, tj. Niepoprawna gałąź zdalna. Czy to pokazuje wgit branch -r
wynikach?Odpowiedzi:
Dziwne: musisz sprawdzić swoje piloty:
I upewnij się, że
origin
zostanie pobrany:Następnie:
(aby sprawdzić, czy pobrałeś
origin/master
oddział)Na koniec użyj
git switch
zamiast mylącegogit checkout
, z Git 2.23+ (sierpień 2019).źródło
pull
a potem to polecenie zadziałało..git
katalog może być w jakiś sposób uszkodzony?git remote -v
wykonywane w repozytorium git działa.FWIW: Jeśli masz literówkę w nazwie gałęzi, otrzymasz ten sam błąd.
źródło
git checkout -b origin mybranch
zamiastgit checkout -b mybranch
(extraorigin
)orgin/my-branch
Zamiast tego próbowałem zrobić kasęorigin/my-branch
.i
Nie trafiłem jednego i przez chwilę drapałem się po głowie, żeby zrozumieć, dlaczego stary sojusznik nie chce się dogadać. Literówka rzeczywiście była problemem.Ten błąd można uzyskać w kontekście np. Kompilacji Travis, która domyślnie sprawdza kod
git clone --depth=50 --branch=master
. Według mojej najlepszej wiedzy możesz kontrolować--depth
za pośrednictwem,.travis.yml
ale nie za pośrednictwem--branch
. Ponieważ powoduje to, że tylko jeden oddział jest śledzony przez pilota, musisz niezależnie zaktualizować pilota, aby śledzić referencje żądanego pilota.Przed:
Poprawka:
Po:
źródło
Ta prosta rzecz działała dla mnie!
Jeśli mówi, że nie można zrobić dwóch rzeczy jednocześnie, rozdziel je.
źródło
Gdy natkniesz się na ten problem, możesz wykonać następujące kroki:
co daje to:
Jak widać nowy oddział został pobrany ze zdalnego.
3. Na koniec sprawdź gałąź za pomocą tego polecenia
Nie jest konieczne jawne polecenie Gitowi śledzenia (za pomocą --track ) oddziału za pomocą pilota.
Powyższe polecenie spowoduje ustawienie gałęzi lokalnej na śledzenie gałęzi zdalnej od początku.
źródło
Jeśli masz białą spację w oddziale, pojawi się ten błąd.
źródło
Dla mnie musiałem dodać pilota:
wtedy mógłbym pobrać
źródło
Powoduje to, że lokalny oddział nie śledzi zdalnego oddziału. Jak powiedział ssasi, musisz użyć następujących poleceń:
Właśnie rozwiązałem mój problem ....
źródło
Najpierw musisz przejść
Fetch
do zdalnego (konkretnej gałęzi), a następnie możesz utworzyć lokalny br i śledzić go za pomocą tej zdalnej gałęzi za pomocą polecenia (tj.checkout
Z -b i --track).źródło
Powinieneś przejść do podmodułu dir i uruchomić
git status
.Możesz zobaczyć, że wiele plików zostało usuniętych. Możesz biegać
git reset .
git checkout .
git fetch -p
git rm --cached submodules
// submoudles to twoje imięgit submoudle add ....
źródło
Możesz użyć tych poleceń: git zdalna aktualizacja, git fetch, git checkout -b nazwa_oddziału Pochodzenie: nazwa_oddziałuB
Myślę, że może to dlatego, że lokalny oddział nie może śledzić zdalnego oddziału
źródło