Но я получаю ошибку "! [Отклонено]" и что-то о "не быстрой перемотке вперед"
Это потому, что 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
случае, если сможет выполнить ускоренное слияние. Быстро вперед слияние слияние , в котором глава филиала вы пытаетесь слиться является прямым потомком главы филиала вы хотите объединить. Например, если у вас есть это дерево истории, то слияние 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!