Можно всегда делать git fetch, а потом ручками все сливать. Но как по мне - это закат солнца вручную. Есть более красивые пути. ff-only:
git pull --ff-only
В этом случае есть можно утянуть без мерджа - все пройдет хорошо, если нет - не будет мерджа и команда возвратит ненулевой код возврата. Удобно для скриптов. Настраивается и в конфиге - pull.ff
Вторая штука - --no-commit
git pull --no-commit
в этом случае, если возникнет необходимость мерджа, то сам мердж произойдет, но не будет коммититься. То есть, будет возможность решить все ручками и закоммитить.
Самое вкусное, но и самое "страшное для новичков" - --rebase
git pull --rebase
В этом случае, если есть изменения в удаленной ветки и в локальной произойдет ребейз, для любителей ровной истории самое оно. Если говорить по-простому, то произойдет следующее - Ваши последние изменения будут запомнены, удаленная ветка подтянута и изменения приложатся поверх. Ещё проще - это все будет выглядеть как будто только что притянули изменения (припулили) и сделали свои локальные изменения. Естественно, если изменения конфликтуют, то git предложит все решить. Иногда и автоматом.
я пользуюсь vim– а как это влияет? – Nick Volynkin Jul 10 '17 at 12:14