Wyciągnąć zdalną gałąź do lokalnego repozytorium o innej nazwie?

112

W porządku, trochę poszukałem tego, ale nie mogłem znaleźć dokładnej odpowiedzi, więc muszę zapytać.

Mam 2 piloty: origin i repo2.

Chciałbym zrobić coś takiego

git pull repo2 master

Ale to pociągnęłoby główną gałąź repo2 do mojego mastera. Czy mogę określić inny oddział, do którego mam się dostać, dla mojego lokalnego oddziału?

Cosmin Atanasiu
źródło

Odpowiedzi:

163
git checkout -b myBranchName repo2/master
KingCrunch
źródło
20
Uwaga - git fetch remote2jeśli jeszcze tego nie zrobiłeś, musisz biec wcześniej. W przeciwnym razie możesz zobaczyć> fatal: nie można zaktualizować ścieżek i jednocześnie przełączyć się na gałąź „myBranchName”.
dman
Uwaga - jeśli musisz git push repo2 myBranchName:mastergit push
odrzucić
2
A jeśli oddział już istnieje? Chcę tam zaktualizować kod za pomocą kodu z repozytorium.
Jared
@Jared Technicznie inne pytanie, ale także łatwo możliwe (i właściwie jest to jeden z najczęstszych przypadków użycia). To trochę zależy od tego, co już zrobiłeś. W większości przypadków to po prostu git checkout my_branch && git pull --rebase( --rebasezależy od Twojego przepływu pracy). Jeśli oddział nie śledzi już zdalnego, musisz wykonać git branch --set-upstream my_branch upstream/my_branchraz.
KingCrunch,
4

git pullKomenda jest funkcją komfort, że robi git fetchi git merge. Jeśli chcesz tylko pobrać gałęzie z nowego pilota bez próby scalenia go z jakąkolwiek gałęzią kopii roboczej, możesz po prostu użyć git fetch. Następnie możesz odwołać się do, git branch -avaby zobaczyć wszystkie lokalne i zdalne gałęzie i operować na dowolnym zdalnym, jak chcesz.

Ben Jackson
źródło