Ho un progetto con più rami. Li ho spinti su GitHub, e ora che qualcun altro sta lavorando al progetto ho bisogno di tirare i loro rami da GitHub. Funziona bene in master. Ma diciamo che qualcuno ha creato un ramo xyz
. Come posso tirare il ramo xyz
da GitHub e unirlo al ramo xyz
sul mio localhost
?
In realtà ho la mia risposta qui: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
Ma ottengo un errore "! [rejected]" e qualcosa su "non fast forward".
Qualche suggerimento?
Traccia semplicemente i tuoi rami remoti in modo esplicito e un semplice git pull
farà proprio quello che vuoi:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
Quest'ultima è un'operazione locale.
O ancora più in linea con la documentazione di GitHub sulla biforcazione:
git branch -f new_local_branch_name upstream/remote_branch_name
Potreste tirare un ramo a un ramo con i seguenti comandi.
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
Quando sei sul ramo master potresti anche fare il checkout di un ramo come:
git checkout -b xyz
Questo crea un nuovo ramo, "xyz", dal master e lo controlla direttamente.
Poi si fa:
git pull origin xyz
Questo tira il nuovo ramo nel tuo ramo locale xyz
.
Non sono sicuro di capire appieno il problema, ma tirando un ramo esistente si fa così (almeno funziona per me :)
git pull origin BRANCH
Questo presuppone che il tuo ramo locale sia creato dall'origine/BRANCH.