git merge conflicts
От: Tessi  
Дата: 12.05.23 10:03
Оценка:
Да, я знаю, что вопрос древний, как говно мамонта, но я не могу понять, где я допускаю ошибку в порядке действий.
У нас происходит слияние по следующему алгоритму
1. Для какой-то фичи создается ветка из мастера
2. В ней делается работа, вносятся правки, отправляется на ревью, опять делаются правки и т.д., пока код не вылизан и минимально не протестирован.
3. Делается squash всех рабочих коммитов в один
4. Ветка автоматически мержится в мастер. Т.к. все промежуточные коммиты слиты в один, в истории мастера фича представлена одним коммитом

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

git fetch
git rebase origin/master
--> fix conflicts
git push origin

И вот перед пушем гит заявляет, что не будет пушить, пока я не сделаю pull. А когда я делаю пулл, гит мне по новой вываливает все конфликты по каждому моему коммиту и весь гемор по резолвингу конфликтов начинается по новой. После этого в истории коммитов ветки появляется коммит с мержем и потом еще гемор со squash, потому что часть коммитов "пустые" и они как бы и есть, и их нет.
Что я неправильно делаю? Как свести резолвинг конфликтов к одному разу?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.