LINUX.ORG.RU

git merge по одному коммиту за раз

 


0

0

Как сделать merge двух веток не за 1 раз, а по 1-N коммитов ?

Есть проект который сильно изменили, если смержу сразу, то умру разбираться с конфликтами. Если мержить по 1-2 коммита, то конфликты разрешать будет не сложно.

Или делать git rebase ?

★★★★★

git merge хеш_коммита для всех хешей, от HEAD~$((N-1)) до HEAD? Или проблема в том, чтобы задать этот цикл?

backbone ★★★★★
()

Я бы сделал примерно так:

# делаем бранч для подготовки к мержу
git checkout -b premerge-feature feature 
# проходим по каждому коммиту и разруливаем конфликты
git rebase master 

# мержим с созданием merge-коммита (они, имхо, очень хорошо и наглядно показывают точки присоединения нового кода)
git checkout master
git merge --no-ff premerge-feature 

Sectoid ★★★★★
()

кстати да, черри-пик. не совсем мерж, но вполне подходит.

Dudraug ★★★★★
()
Ответ на: комментарий от Sectoid

Всем спасибо за подсказки.

vel ★★★★★
() автор топика
Ответ на: комментарий от Sectoid

git rebase master

плюсую такой вариант. Даже можно не делать отдельную ветвь, ведь в случае неудачи достаточно выполнить git rebase --abort.

backbone ★★★★★
()
Последнее исправление: backbone (всего исправлений: 3)
Ответ на: комментарий от backbone

Даже можно не делать отдельную ветвь, ведь в случае неудачи достаточно выполнить git rebase --abort.

Ветвь создается не для этого. А для того, чтобы потом ее смержить. И не трогать при этом оригинальные коммиты. Может сама ветка feature уже опубликована, и деструктивно ее менять нельзя.

Sectoid ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.