Это - не баг, это - результат ваших (непродуманных?) действий. <br/> Revert (в отличие от reset) создаает commit. Поэтому у вас в main появилась цепочка commit после точки разделения (можете посмотреть любым средством просмотра веток - да хоть git log: git log с ключом --graph после слияния покажет это достаточно наглядно. Слить такие ветки быстрой перемоткой (fast-forward), как вам удавалось делать раньше, не получится, поэтому gitу приходится создавать merge commit с двумя родителями - исходными указателями сливаемых веток. <br/> Основных способов выйти их такого положения - два. <br/> Первый - сбросить указатель ветки main на точку разделения: переключиться на нее и выполнить git reset. Если вы действительно делали только отмену (revert) и отмену отмены, то вы ничего не должны потерять. Если опасаетесь потерять - создайте перед сбросом еще одну ветку на базе текущего main, потом вытащите в случае чего изменения из нее (а вообще-то в git зафиксированные изменения так сразу не теряются, и можно обычно вытащить их даже при отсутсвии ветки). <br/> Второй способ - перебазировать (git rebase) ветку update на текущий указатель ветки main. Правда, в этом варианте у вас останутся в истории обе ваши отмены. <br/> После этого вы сможете выполнить так нравящееся вам слияние быстрой перемоткой. <br/> PS Есть ещё и третий вариант решения - забрать изменения из update в main с помощью cherry-pick, но в данном случае это - лишние заморочки IMHO.