Как синхронизировать ветки при использовании Git Flow

В настоящее время мы следуем этому рабочему процессу:

  1. Завершите функцию и объедините ее с ветвью develop
  2. Создайте ветку release из develop
  3. Запуск скриптов сборки на ветке release
  4. Создайте запрос на вытягивание, чтобы объединить ветку release с веткой master.
  5. Примите запрос на ветку release и выполните слияние
  6. Затем ветку master можно развернуть на рабочем сервере, выполнив команду развертывания.

Все это отлично работает, за исключением того, что в моем репозитории Git мои ветки не синхронизированы, master теперь отстает от develop, потому что у него нет коммитов слияния, которые произошли из запроса на слияние, объединяющего ветку release в develop. Но master также опережает develop, поскольку теперь он содержит коммиты слияния из запроса на вытягивание, чтобы получить ветку release в master.

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

Или не имеет значения, что они не синхронизированы?

Вот ссылка на процесс Git Flow, если вы с ним не знакомы: http://nvie.com/posts/a-successful-git-branching-model/

Спасибо.


person Ian Jamieson    schedule 19.02.2015    source источник
comment
Вам нужно вернуться в develop после выпуска. В нашем рабочем процессе я объединяю ветку master обратно в ветку develop после релиза. Таким образом, вы получите все изменения из слияния релиза и убедитесь, что сможете слить все в master, когда будете делать следующий релиз. Похоже, последний шаг отсутствует в вашем рабочем процессе.   -  person nwinkler    schedule 19.02.2015
comment
Круто, я думаю, это то, что делает опция синхронизации в Bit Bucket. Спасибо   -  person Ian Jamieson    schedule 19.02.2015


Ответы (1)


Когда вы объединяете ветку выпуска с мастером, вы либо объединяете разработку, а затем отправляете обновленную ветку разработки, либо создаете новую из мастера. Если вы объедините разработку и отправку, то все, у кого есть доступ к разработке, получат обновленную ветку разработки при следующем обновлении.

Ваш главный и удаленный мастер не синхронизированы, так как вы не получили обновление с пульта. Это ты должен сделать! :)


Добавление ответа nwinkler для лучшей видимости в качестве ответа:

You need to merge back into develop after doing the release. In our workflow, I merge the master branch back into develop after the release. That way you get all of the changes from the release merge and you make sure that you can merge everything into master when you do the next release. Looks like that last step is missing from your workflow

Если вы получили то, что хотели, пожалуйста, примите это и закройте!

Надеюсь, это помогло!

person Mudassir Razvi    schedule 19.02.2015
comment
Ах, я, возможно, не был ясен в моем описании. Я не беспокоюсь о том, что пульты не синхронизируются с моим локальным репо. Я беспокоюсь о том, что удаленные ветки не синхронизируются друг с другом. Я полагаю, процесс будет таким: 1. git merge release branch 2. git checkout develop 3. git merge master Имеет ли это смысл? - person Ian Jamieson; 19.02.2015
comment
Прохладно! Это бы всех порадовало, я полагаю! :) - person Mudassir Razvi; 19.02.2015