Какой лучший способ заставить слияние в git?
У меня есть проект с веткой разработчика и производственной веткой. Недавно я работал над большим новым набором функций в dev, поэтому я не включался в производство около двух недель. Тем временем, тем не менее, были некоторые ошибки, которые необходимо было устранить в процессе производства.
По большей части мне удалось внести исправления в dev и собрать их в производство. Однако иногда мне приходилось исправлять производство вручную, поскольку исправления существенно отличались в двух ветвях. Дело в том, что с тех пор, как они разделились, две ветви разошлись.
Теперь я хочу просто запустить всех разработчиков в производство. Меня не волнует сохранение каких-либо коммитов в производстве после разделения, я просто хочу, чтобы производство выглядело точно как dev. [РЕДАКТИРОВАТЬ: я хочу, чтобы производство выглядело точно так же, как dev после разделения, но я не хочу переписывать историю до разделения] Однако, когда я пытаюсь объединиться, я получаю десятки конфликтов, которые я предпочел бы не устранять вручную.
Какой лучший способ заставить слияние в git? Могу ли я вернуть свои производственные изменения обратно в разделение, а затем просто перенести их в ветку dev?
2 ответа
Вы можете просто вставить свою ветку dev в ветку master repo:
git push --force upstream-remote dev:production
upstream-remote
может быть просто origin
если вы используете клон по умолчанию.
Обновлено для модового вопроса:
Вы, вероятно, не хотите revert
в смысле Git, но, да, это более или менее то, что вы хотите сделать. Что-то вроде
git checkout -b merge <split hash>
git merge dev
git push --force origin merge:production
Это объединит ваш новый филиал с существующим базовым.
git checkout <baseBranch> // checkout baseBranch
git merge -s ours <newBranch> // this will simply merge newBranch in baseBranch
git rm -rf .
git checkout newBranch -- .