Слияние / перебазирование рабочего процесса - PullRequest
1 голос
/ 05 марта 2012

Я в процессе изменения моего git-merge-workflow и столкнулся со следующей проблемой:

До сих пор я сливал (--no-ff) свои изменения в ветке develop обратно в master всякий раз, когда выпускал новую версию. Это сгенерировало новый коммит-слияние, содержащий историю (--log) всех develop -коммитов. Я понял, что это неоптимально, и на самом деле хочу выполнить быстрое слияние из моей ветви develop в master (изменив мои коммит-сообщения на develop, чтобы отразить мои изменения "чище") .

Моя текущая проблема: последний коммит на master все еще остается коммитом слияния с прошлого раза, из-за того, что я не могу выполнить ff-слияние с develop до master сейчас, так как 2 ветви "разошлись" (слияние-коммит отсутствует на develop).

Моя идея решить эту проблему состояла бы в разработке: git rebase master, который включил бы этот коммит-слияние, а затем позволил бы мне сделать git merge develop на мастере. Но сгенерирует ли это новый коммит в develop (этот конкретный коммит-коммит) или будет достаточно умным, чтобы признать, что изменения этого коммит-коммит уже являются частью develop?

Ответы [ 2 ]

1 голос
/ 05 марта 2012

git rebase master при включенном develop будет нормально работать для ваших целей.

Если ваши ветки в настоящее время выглядят так:

A-B-C-D-E <-- master
       /
  F-G-H-I-J <-- develop

, тогда они будут так (потому что I-J является единственным битом, недоступным из E):

A-B-C-D-E <-- master
         \
          I'-J' <-- develop

, который затем переместится назад в мастер, как это:

A-B-C-D-E-I'-J' <-- master
0 голосов
/ 05 марта 2012

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

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

...