Ma ricevo un errore "! [Rifiutato]" e qualcosa su "avanzamento non veloce"
Questo perché Git non può unire le modifiche dai rami al tuo attuale master. Supponiamo che tu abbia verificato il ramo master
e desideri unirti al ramo remoto other-branch
. Quando lo fai:
$ git pull origin other-branch
Git sta praticamente facendo questo:
$ git fetch origin other-branch && git merge other-branch
Cioè, a pull
è solo a fetch
seguito da a merge
. Tuttavia, quando pull
-ing, Git si unirà solo other-branch
se può eseguire una fusione in avanti veloce . Un fast-forward merge è un'unione in cui il capo del ramo si sta tentando di fondersi in un diretto discendente del capo del ramo si desidera unire. Ad esempio, se si dispone di questo albero della cronologia, la fusione other-branch
comporterebbe una fusione rapida:
O-O-O-O-O-O
^ ^
master other-branch
Tuttavia, questa non sarebbe un'unione di avanzamento rapido:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Per risolvere il tuo problema, prima scarica il ramo remoto:
$ git fetch origin other-branch
Quindi uniscilo nel tuo ramo corrente (suppongo che sia master
) e correggi eventuali conflitti di unione:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!