Слияние одного изменения с несколькими ветками в Git - PullRequest
27 голосов
/ 27 октября 2011

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

(master)$ git checkout -b bugfix
# do bug fix here
(bugfix)$ git commit -a -m 'Fixed bug.'
(bugfix)$ git checkout master
(master)$ git merge bugfix

(master)$ git checkout bugfix
(bugfix)$ git rebase experimental
(bugfix)$ git checkout experimental
(experimental)$ git merge bugfix

Спасибо.

1 Ответ

34 голосов
/ 27 октября 2011

Не делайте ребаз, и все готово. Просто объедините вашу ветку bugfix в каждую нужную вам ветку

(master)$ git checkout -b bugfix
# do bug fix here
(bugfix)$ git commit -a -m 'Fixed bug.'
(bugfix)$ git checkout master
(master)$ git merge bugfix

(bugfix)$ git checkout experimental
(experimental)$ git merge bugfix

При выполнении ребазинга вы создаете коммит, похожий на уже слитый коммит, но другой. Выполнение rebase с последующим checkout + merge по сути эквивалентно выбору вишни для фиксации исправления ошибки.

...