Która z tych linii jest poprawna?
git checkout 'another_branch'
Lub
git checkout origin 'another_branch'
Lub
git checkout origin/'another_branch'
git checkout 'another_branch'
Lub
git checkout origin 'another_branch'
Lub
git checkout origin/'another_branch'
Odpowiedzi:
Jeśli another_branchjuż istnieje lokalnie i nie ma Cię w tej gałęzi, git checkout another_branchprzełącz się na gałąź.
Jeśli another_branchnie istnieje, ale istnieje origin/another_branch, git checkout another_branchoznacza to git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. To stworzyć another_branchod origin/another_branchi zestaw origin/another_branchjak górnym stanowisku another_branch.
Jeśli nie istnieje, git checkout another_branchzwraca błąd.
git checkout origin another_branchzwraca błąd w większości przypadków. Jeśli originjest wersją i another_branchjest plikiem, to sprawdza plik tej wersji, ale najprawdopodobniej nie tego się spodziewasz. originjest stosowany głównie w git fetch, git pulli git pushjako zdalny, alias adres URL do zdalnego repozytorium.
git checkout origin/another_branchpowiedzie się, jeśli origin/another_branchistnieje. Prowadzi to do stanu odłączonego HEAD, a nie do żadnej gałęzi. Jeśli dokonasz nowych zatwierdzeń, nowe zatwierdzenia nie będą dostępne z żadnych istniejących oddziałów i żaden z oddziałów nie zostanie zaktualizowany.
AKTUALIZACJA :
Wraz z wydaniem 2.23.0 możemy za jego pomocą git switchtworzyć i przełączać gałęzie.
Jeśli fooistnieje, spróbuj przełączyć na foo:
git switch foo
Jeśli foonie istnieje i origin/fooistnieje, spróbuj utworzyć fooz, origin/fooa następnie przejdź do foo:
git switch -c foo origin/foo
# or simply
git switch foo
Mówiąc bardziej ogólnie, jeśli foonie istnieje, spróbuj utworzyć fooze znanego ref lub zatwierdzenia, a następnie przejdź do foo:
git switch -c foo <ref>
git switch -c foo <commit>
Jeśli prowadzimy jednocześnie repozytorium w Gitlab i Github, lokalne repozytorium może mieć dwa piloty, na przykład origindla Gitlab i githubGithub. W tym przypadku repozytorium ma origin/fooi github/foo. git switch foobędzie narzekać fatal: invalid reference: foo, ponieważ nie wiadomo z którego ref origin/foolub github/foo, aby utworzyć foo. Musimy to określić za pomocą git switch -c foo origin/foolub git switch -c foo github/foozgodnie z potrzebą. Jeśli chcemy utworzyć gałęzie z obu zdalnych gałęzi, lepiej jest użyć nazw wyróżniających dla nowych gałęzi:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Jeśli fooistnieje, spróbuj odtworzyć / wymusić utworzenie fooz (lub zresetować foodo) znanego ref lub zatwierdzenia, a następnie przełącz się na foo:
git switch -C foo <ref>
git switch -C foo <commit>
które są równoważne:
git switch foo
git reset [<ref>|<commit>] --hard
Spróbuj przełączyć się na odłączony HEAD znanego ref lub zatwierdzić:
git switch -d <ref>
git switch -d <commit>
Jeśli chcesz po prostu utworzyć gałąź, ale nie chcesz się do niej przełączać, użyj git branchzamiast tego. Spróbuj utworzyć gałąź ze znanego ref lub zatwierdzenia:
git branch foo <ref>
git branch foo <commit>
git checkoutmoim zdaniem polecenie robi zbyt wiele rzeczy. Dlatego jest tutaj tak wiele trybów działania. Gdyby jedyną rzeczą git checkoutbyło przełączenie gałęzi, odpowiedź byłaby prosta, ale może również tworzyć gałęzie, a nawet wyodrębniać pliki z określonych zatwierdzeń bez przełączania gałęzi.
git switchprzełączenia na oddział.
git checkouttego używaj @John dla starszych wersji, która działa również w nowoczesnych wersjach.
Przełączanie do innej gałęzi w git. Prosta odpowiedź,
git-checkout - Przełącz gałęzie lub przywróć działające pliki drzewa
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Przed zmianą gałęzi upewnij się, że nie masz żadnych zmodyfikowanych plików, w takim przypadku możesz zatwierdzić zmiany lub ukryć je.
[ git checkout "branch_name"]
to inny sposób na powiedzenie:
[ git checkout -b branch_name origin/branch_name]
w przypadku, gdy „nazwa_gałęzi” istnieje tylko zdalnie.
[ git checkout -b branch_name origin/branch_name] jest przydatne, jeśli masz wiele pilotów.
Jeśli chodzi o [ git checkout origin 'another_branch'] nie jestem pewien, czy jest to możliwe, AFAK można to zrobić za pomocą polecenia „pobierz” - [ git fetch origin 'another_branch']
Dla mnie zadziałało:
Przejdź do potrzebnej gałęzi:
git checkout -b BranchName
A potem wyciągnąłem „mistrza” przez:
git pull origin master
Przydatne polecenia do pracy w życiu codziennym:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
Jeśli chcesz, aby gałąź śledziła gałąź zdalną, co jest bardzo ważne, jeśli zamierzasz zatwierdzić zmiany w gałęzi i pobrać zmiany itp., Musisz użyć opcji -t do faktycznego pobrania, np .:
git checkout -t branchname
Sprawdź: git branch -a
Jeśli otrzymujesz tylko jeden oddział. Następnie wykonaj poniższe czynności.
git config --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthparam) i teraz zastanawiasz się, dlaczego nie możesz pobrać innych zdalnych gałęzi, error: pathspec 'another_branch' did not match any file(s) known to gitkorzystając z poleceń sugerowanych powyżej. Z pewnością nie o to chodziło w pierwotnym pytaniu, ale może pomóc innym drapiąc się tutaj po głowach.
Używam tego, aby przełączyć jedną gałąź na drugą, każdy, kogo możesz użyć, działa dla mnie jak urok.
git switch [nazwa gałęzi] LUB git kasa [nazwa gałęzi]
np. git switch develop LUB
git checkout develop
git checkout [branch]dla większości użytkowników odwiedzających to pytanie