Mam projekt z wieloma gałęziami. I've been pushing them to GitHub, and now that someone else is working on the project I need to pull their branches from GitHub. Działa to dobrze w master. Ale powiedzmy, że ktoś stworzył gałąź xyz
. Jak mogę ściągnąć gałąź xyz
z GitHuba i scalić ją do gałęzi xyz
na moim localhost
?
Właściwie mam tutaj swoją odpowiedź: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
Ale dostaję błąd "! [rejected]" i coś o "non fast forward".
Jakieś sugestie?
Po prostu śledź swoje zdalne gałęzie, a proste git pull
zrobi to, co chcesz:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
To ostatnie jest operacją lokalną.
Albo jeszcze bardziej pasuje do dokumentacji GitHub na temat forkowania:
git branch -f new_local_branch_name upstream/remote_branch_name
Możesz przeciągnąć gałąź do gałęzi za pomocą następujących poleceń.
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
Kiedy jesteś na gałęzi master, możesz również najpierw sprawdzić gałąź jak:
git checkout -b xyz
To tworzy nowy oddział, "xyz", z master i bezpośrednio go sprawdza.
Następnie wykonujesz:
git pull origin xyz
To ściąga nową gałąź do twojej lokalnej gałęzi xyz
.
Nie jestem pewien, czy w pełni rozumiem problem, ale wyciąganie istniejącej gałęzi odbywa się w ten sposób (przynajmniej działa to dla mnie :)
git pull origin BRANCH
Zakłada to, że twoja lokalna gałąź jest tworzona z origin/BRANCH.