Git Rebase или SVN Reintegrate для функциональных веток? - PullRequest
1 голос
/ 30 сентября 2011

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

Мы рассматриваем рабочий процесс разработки, в котором каждая отдельная функция разрабатывается в отдельной ветви,затем объединяются в магистраль / мастер, когда он готов к выпуску.Ветвь всегда будет удаляться после слияния обратно в trunk / master.

Одно из предложений - использовать git rebase, чтобы поддерживать ветвь функции в актуальном состоянии с изменениями в master (чтобы мы могли проверить в ветке)именно то, что будет выпущено), и чтобы упростить объединение из ветви -> мастер.

Альтернатива, которую мы рассматриваем, состоит в том, чтобы использовать svn merge для поддержания ветки функции в актуальном состоянии с изменениями в стволезатем с помощью svn merge --reintegrate объединить ветвь функций обратно в магистраль для выпуска.

Каковы различия и потенциальные ловушки каждого из этих подходов?А что больше подходит для нашего рабочего процесса?

1 Ответ

1 голос
/ 30 сентября 2011

Это действительно простой рабочий процесс в git.Несколько разработчиков используют один или оба описанных вами метода.

Лично я являюсь поклонником стратегии Скотта Чакона и считаю ее действительно полезной.

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

Git-merge (а не svn-merge - reintegrate, как вы отметили) немного проще в git, если вы только начинаете,Стратегии слияния в Git действительно хорошо продуманы и автоматически избавят вас от неприятностей.

Если я занимаюсь разработкой ветки функций, а затем объединяю ее с master, мне нравится запускать git merge --no-ff feature, пока на master, чтобы создатькоммит слияния просто чтобы быть явным.

Поскольку вы только начинаете с git, я бы пошел на рабочий процесс слияния.ИМХО, это более интуитивно понятно, если вы работаете с SVN-фоном.

...