Dyikot
@Dyikot

Почему в истории начал появляться коммит слияния?

У меня две ветки: main и update. Соответсвенно все делаю в update и потом делаю merge с main и push main на GitHub. (update существует только локально). Раньше не было дополнительного комммита, о том что main слилась с update. Это появилось после того как я сначала сделал Revert и затем Revert "Revert".
Вопрос: Он вообще должен показываться? или раньше был баг что не показывался? И если не баг, то можно ли исправить это?
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
@mvv-rus
Настоящий админ AD и ненастоящий программист
Это - не баг, это - результат ваших (непродуманных?) действий.
Revert (в отличие от reset) создаает commit. Поэтому у вас в main появилась цепочка commit после точки разделения (можете посмотреть любым средством просмотра веток - да хоть git log: git log с ключом --graph после слияния покажет это достаточно наглядно. Слить такие ветки быстрой перемоткой (fast-forward), как вам удавалось делать раньше, не получится, поэтому gitу приходится создавать merge commit с двумя родителями - исходными указателями сливаемых веток.
Основных способов выйти их такого положения - два.
Первый - сбросить указатель ветки main на точку разделения: переключиться на нее и выполнить git reset. Если вы действительно делали только отмену (revert) и отмену отмены, то вы ничего не должны потерять. Если опасаетесь потерять - создайте перед сбросом еще одну ветку на базе текущего main, потом вытащите в случае чего изменения из нее (а вообще-то в git зафиксированные изменения так сразу не теряются, и можно обычно вытащить их даже при отсутсвии ветки).
Второй способ - перебазировать (git rebase) ветку update на текущий указатель ветки main. Правда, в этом варианте у вас останутся в истории обе ваши отмены.
После этого вы сможете выполнить так нравящееся вам слияние быстрой перемоткой.
PS Есть ещё и третий вариант решения - забрать изменения из update в main с помощью cherry-pick, но в данном случае это - лишние заморочки IMHO.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы