Объединение слияний в одно слияние - PullRequest
5 голосов
/ 22 декабря 2011

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

Ответы [ 3 ]

1 голос
/ 22 декабря 2011

Вы можете сделать интерактивный перебаз для достижения этой цели, но вы должны делать это только в том случае, если вы еще не поделились этой историей с кем-либо еще.На практике это означает, что вы должны делать это только в том случае, если вы не сделали git push для общего репо.

1 голос
/ 22 декабря 2011

Звучит так, как будто вы хотите выбрать вишни коммитов без слияния для ветви функций в ветку чистых функций, а затем, наконец, объединить ветку чистых функций с последним мастером (что бы это ни было).Вы можете использовать rebase, чтобы ускорить часть этого выбора, что, к сожалению, я не знаю, как сделать это в один миг, так как это не то, что я делаю очень часто.Было бы полезно, если у вас есть графический интерфейс, который позволяет вам выбрать несколько коммитов для одновременной подбора.

Редактировать: Это было бы более конкретное решение: Как выбрать диапазон коммитов и объединить ихв другую ветку

1 голос
/ 22 декабря 2011

Вы смотрели на git rebase?

git co -b temp_feature feature
git rebase master

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

( Неправильный ответ ниже : это создаст один коммит, а не одно слияние: - /)

Я думаю, что самое простое - сделать следующее:

git co master
git merge --squash feature

Это создаст один коммит из всей ветви объектов.Если вы не хотите сохранять ветку функции, выполните:

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