Ale pojawia się błąd „! [Odrzucony]” i coś o „nie przewijaniu do przodu”
Wynika to z faktu, że Git nie może scalić zmian z gałęzi z bieżącym mistrzem. Załóżmy, że sprawdziłeś gałąź master
i chcesz połączyć się ze zdalną gałęzią other-branch
. Kiedy to zrobisz:
$ git pull origin other-branch
Git robi to w zasadzie:
$ git fetch origin other-branch && git merge other-branch
To znaczy, a pull
po nim fetch
następuje merge
. Jednak, gdy pull
-ing, Git będzie tylko scalić other-branch
jeśli można to wykonać szybko naprzód seryjnej. Fast-forward seryjnej jest scalanie, w której szef oddziału, który próbujesz scalić jest bezpośrednim potomkiem szefa oddziału chcesz scalić. Na przykład, jeśli masz to drzewo historii, scalenie other-branch
spowoduje szybkie scalenie:
O-O-O-O-O-O
^ ^
master other-branch
Nie byłoby to jednak szybkie przewijanie do przodu:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Aby rozwiązać problem, najpierw pobierz gałąź zdalną:
$ git fetch origin other-branch
Następnie połącz go z bieżącym oddziałem (zakładam, że to master
) i napraw wszelkie konflikty scalania:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!