Какой лучший способ заставить слияние в git? - PullRequest
31 голосов
/ 24 февраля 2012

У меня есть проект с веткой dev и производственной веткой.Недавно я работал над большим новым набором функций в dev, поэтому я не включался в производство около двух недель.В то же время, тем не менее, были некоторые ошибки, которые нужно было исправлять в процессе производства.

По большей части мне удалось внести исправления в dev и выбрать их в производство.Однако иногда мне приходилось исправлять производство вручную, поскольку исправления существенно отличались в двух ветвях.Суть в том, что с тех пор, как они разделились, две ветви разошлись.

Теперь я хочу просто запустить все dev в производство.Меня не волнует сохранение каких-либо коммитов в производстве после разделения, я просто хочу, чтобы производство выглядело точно как dev.[РЕДАКТИРОВАТЬ: я хочу, чтобы производство выглядело точно так же, как dev с момента разделения , но не хочу переписывать историю до разделения] Однако, когда я пытаюсь объединиться, я получаю десятки конфликтов, которые я бы предпочелне исправить вручную.

Какой лучший способ заставить слияние в git?Могу ли я вернуть свои производственные изменения обратно в разделение, а затем просто перенести их в ветку dev?

Ответы [ 2 ]

26 голосов
/ 24 февраля 2012

Вы можете просто вставить свою ветку разработчика в ветку основного репо:

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

был последним коммитом в рабочей среде, который вы хотите сохранить.

0 голосов
/ 28 января 2013

Это объединит вашу новую ветку с существующей базовой веткой

git checkout <baseBranch> // checkout baseBranch
git merge -s ours <newBranch> // this will simply merge newBranch in baseBranch
git rm -rf . 
git checkout newBranch -- . 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...