Но я получаю сообщение об ошибке "! [Отклонено]" и что-то о "не быстрой перемотке вперед"
Это потому, что Git не может объединить изменения из веток с вашим текущим мастером. Допустим, вы отметили ветку master
и хотите объединить ее в удаленную ветку other-branch
. Когда вы делаете это:
$ git pull origin other-branch
Git в основном делает это:
$ git fetch origin other-branch && git merge other-branch
То есть pull
- это просто fetch
, за которым следует merge
. Однако, когда pull
-ing, Git будет только слить other-branch
, если , он может выполнить слияние fast-forward . fast-forward слияние - это слияние, в котором глава ветви, в которую вы пытаетесь слиться, является прямым потомком главы ветви, которую вы хотите объединить. Например, если у вас есть это дерево истории, то слияние other-branch
приведет к слиянию в ускоренном режиме:
O-O-O-O-O-O
^ ^
master other-branch
Однако, это не будет быстрым слиянием:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Чтобы решить вашу проблему, сначала принесите удаленную ветку:
$ git fetch origin other-branch
Затем объедините его с вашей текущей веткой (я предполагаю, что это master
) и исправьте все конфликты слияний:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!