Другая причина в том, что у вас есть ветвь, которая очень не синхронизирована с вашей активной веткой, и вы хотите обновить старую ветвь активной, но возможные конфликты слияния не позволяют легко сделать это с помощью обычного слияния.
Например, мой вариант использования был:
У вас есть ветка master и dev, и по какой-то причине вы не обновляли ветку master в течение нескольких недель, и ваша попытка слить ветку dev в master теперь приводит к конфликтам слияния. Что вы можете сделать, это переписать вашу основную ветку с текущим состоянием вашей ветви разработки, поэтому приведите их в синхронизацию.
В этом случае вы можете сделать следующее, используя шаги, описанные другим пользователем SO в другом ответе SO здесь . Но, пожалуйста, смотрите мое предупреждение ниже .
git checkout dev
git merge -s ours master
git checkout master
git merge dev
Стоит короткое примечание: в конце мой мастер был в курсе моего dev, но dev показал 4 коммита, которые должны быть переданы на пульт, что странно. Там должно быть 0, чтобы нажать, так как я просто хотел обновить мастер. Тем не менее, код выглядел нормально. Стоит отметить, что я никогда раньше не использовал git merge -s ours
, поэтому я не на 100% использую его.
Я также нашел другой ответ, используя ours
, который может быть полезен людям: https://stackoverflow.com/a/13307342/339803