Jeg har et projekt med flere grene. Jeg har skubbet dem til GitHub, og nu hvor en anden person arbejder på projektet, skal jeg trække deres grene fra GitHub. Det fungerer fint i master. Men lad os sige, at nogen har oprettet en gren xyz
. Hvordan kan jeg trække gren xyz
fra GitHub og flette den ind i gren xyz
på min localhost
?
Jeg har faktisk mit svar her: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
Men jeg får en fejl "! [rejected]" og noget med "non fast forward".
Nogen forslag?
Du skal blot spore dine fjernforgreninger eksplicit, og en simpel git pull
vil gøre lige hvad du ønsker:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
Sidstnævnte er en lokal operation.
Eller endnu mere passende i overensstemmelse med GitHub-dokumentationen om forking:
git branch -f new_local_branch_name upstream/remote_branch_name
Du kan trække en gren til en gren med følgende kommandoer.
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
Når du er på mastergrenen, kan du også først tjekke en gren ud som f.eks:
git checkout -b xyz
Dette opretter en ny gren, "xyz", fra master og checker den direkte ud.
Derefter gør du:
git pull origin xyz
Dette trækker den nye gren til din lokale xyz
-gren.
Jeg er ikke sikker på, at jeg forstår problemet fuldt ud, men at trække en eksisterende gren gøres på denne måde (det virker i hvert fald for mig :)
git pull origin BRANCH
Dette antager, at din lokale gren er oprettet ud fra origin/BRANCH.