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_branch
już istnieje lokalnie i nie ma Cię w tej gałęzi, git checkout another_branch
przełącz się na gałąź.
Jeśli another_branch
nie istnieje, ale istnieje origin/another_branch
, git checkout another_branch
oznacza to git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. To stworzyć another_branch
od origin/another_branch
i zestaw origin/another_branch
jak górnym stanowisku another_branch
.
Jeśli nie istnieje, git checkout another_branch
zwraca błąd.
git checkout origin another_branch
zwraca błąd w większości przypadków. Jeśli origin
jest wersją i another_branch
jest plikiem, to sprawdza plik tej wersji, ale najprawdopodobniej nie tego się spodziewasz. origin
jest stosowany głównie w git fetch
, git pull
i git push
jako zdalny, alias adres URL do zdalnego repozytorium.
git checkout origin/another_branch
powiedzie się, jeśli origin/another_branch
istnieje. 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 switch
tworzyć i przełączać gałęzie.
Jeśli foo
istnieje, spróbuj przełączyć na foo
:
git switch foo
Jeśli foo
nie istnieje i origin/foo
istnieje, spróbuj utworzyć foo
z, origin/foo
a następnie przejdź do foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Mówiąc bardziej ogólnie, jeśli foo
nie istnieje, spróbuj utworzyć foo
ze 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 origin
dla Gitlab i github
Github. W tym przypadku repozytorium ma origin/foo
i github/foo
. git switch foo
będzie narzekać fatal: invalid reference: foo
, ponieważ nie wiadomo z którego ref origin/foo
lub github/foo
, aby utworzyć foo
. Musimy to określić za pomocą git switch -c foo origin/foo
lub git switch -c foo github/foo
zgodnie 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 foo
istnieje, spróbuj odtworzyć / wymusić utworzenie foo
z (lub zresetować foo
do) 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 branch
zamiast tego. Spróbuj utworzyć gałąź ze znanego ref lub zatwierdzenia:
git branch foo <ref>
git branch foo <commit>
git checkout
moim zdaniem polecenie robi zbyt wiele rzeczy. Dlatego jest tutaj tak wiele trybów działania. Gdyby jedyną rzeczą git checkout
był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 switch
przełączenia na oddział.
git checkout
tego 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 --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
param) 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 git
korzystają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