Актуализация ветки в git

Подскажите пожалуйста, возможно я делаю что-то не так...

У меня есть рабочая ветка и во время разработки я пушил в гит изменения, в это время origin/main обновлялся. Я хочу стянуть все изменения и актуализировать локальную рабочею ветку и main.

  1. Я запушил последние изменения рабочей ветки в гит.
  2. Перешел в локальный main стянул все изменения в него (git pull)
  3. Перехожу обратно в рабочею ветку и прописываю (git rebase main). Возникают конфликты (что ожидаемо) моя рабочая ветка откатывается до первого коммита из этой ветки и предлагает решать конфликты с первым коммитом, а не с последним...

Ответы (1 шт):

Автор решения: Wlad

rebase так и работает. он переписывает историю. и если у вас конфликт в первом коммите, то вам придется решать его ни 1 даже раз, а на протяжении всех коммитов ребейза. сам коммит, после решения конфилктов, будет переписан.

даже если вы пойдете по этому пути, возникнет неприятная ситуация, что в будущем вы даже не увидите "что было на стороне А, что на стороне Б, как вы это решили?".

а вот мердж наоборот, сравнит целые ветки и выкинет все конфликты 1 раз. и у него как раз можно будет посмотреть стороны А, Б, как решился конфликт.

лично я предпочитаю следующую стратегию в вашем случае:
делать ребейз, если он без конфликтов.
есть вылез хотя бы 1 -> аборт и подтягивать изменения через мердж.
да, ветка будет некрасивой, зато я в любой момент увижу и проблемное место, и как оно решилось.

→ Ссылка