Как объединить ветку в другую с опцией переопределения в git - PullRequest
3 голосов
/ 17 декабря 2009

Я использую Git, и у меня есть две ветви: производство и мастер. В настоящее время производству 9 месяцев, и в основной филиал внесено множество изменений.

Я использую capistrano, поэтому мне нужно перенести все изменения в производственную ветку, чтобы я мог развернуть. Однако, когда я сливаюсь, я получаю тонны конфликтов слияния. Меня не волнуют проблемы слияния, потому что я хочу, чтобы моя производственная ветвь была переопределена главной ветвью. Есть ли способ сделать это.

Если бы не я, я думал о создании отрасли производства под названием production_old. Затем удалите все в производственной ветке и затем объединитесь с мастером.

Я использую github.

Ответы [ 2 ]

1 голос
/ 17 декабря 2009

Предостережение: у меня нет опыта использования github. Это было сказано ...

Я не думаю, что вы действительно хотите слияния здесь. Если я правильно понимаю, у вас есть ветка, которая отражает то, что развернуто (production), и у вас есть ветка, которая включает в себя развернутое содержимое, а также более новые изменения (master), но теперь вы готовы продвигать изменения в master будет новый production контент.

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

  1. Отметьте текущую ветку production, чтобы не потерять ее.
  2. Переместите ветвь production, чтобы указать на головку master.

Я полагаю, что вы можете выполнить шаг # 2, запустив git branch -f production master, который должен создать новую ветку production, используя master в качестве отправной точки. Поскольку production уже существует, вам необходим флаг -f, чтобы форсировать его создание. Это также должно быть эквивалентно выполнению git checkout production, затем git reset --hard master, чтобы заставить ветвь соответствовать master.

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

1 голос
/ 17 декабря 2009

Возможно, вам нужна стратегия слияния ours.

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

подробнее ... http://www.kernel.org/pub/software/scm/git/docs/git-merge.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...