#ruby-on-rails #git
#ruby-на-рельсах #git #ruby-on-rails
Вопрос:
Я немного смущен тем, как я мог бы использовать ветви git с rails. Когда я запускаю новое приложение rails, я начинаю с моделей. Я создаю новую ветку
git checkout -b modeling
Затем скажите, что я хочу создать почтовую модель, я делаю
git checkout -b modeling-post
Когда я заканчиваю с Post, я выполняю git merge с моделированием, а затем я делаю
git checkout -b modeling-comment
для модели комментариев и так далее.
Это правильный путь? Могу ли я сделать это лучше?
Ответ №1:
Не существует такого понятия, как правильный путь. Как можно было бы сказать, TIMTOWTDI: существует более одного способа сделать это. Ваша модель ветвления в git должна соответствовать вашему способу работы над вашим кодом и позволять вам чувствовать себя комфортно при этом.
Как правило, неплохо иметь основную ветку «release», которая будет принимать весь «протестированный и одобренный» код и отключать его при запуске новой функции. Когда именно разветвляться или объединяться, зависит от вас и / или рабочего процесса и привычек вашей команды.
Лично я всегда разветвляюсь по функциональности / функционалу, поэтому мой проект находится в заданном состоянии, и люди спрашивают, добавляю ли я функцию X, затем я git branch feature-X
. Как только кодирование будет завершено, я бы объединил его в своей integ
ветке, чтобы протестировать с использованием новейших материалов, над которыми мои коллеги работали бы в то же время. Если он пройдет все тесты, то в конечном итоге он будет объединен в master
и отправится на сборку и развертывание. Но опять же, это зависит от ваших рабочих привычек.
Ответ №2:
Я согласен с Романом, нет единственно правильного способа, но, похоже, вы все чрезмерно усложняете…
Я бы посоветовал попробовать любую другую, более простую модель ветвления. Для меня ветка Ромена выглядит нормально. Вы также можете захотеть взглянуть на этот популярный подход:http://nvie.com/posts/a-successful-git-branching-model / или, если вам нужен анализ аргументов «за» и «против» для различных стратегий ветвления, вы можете найти много полезных ссылок здесь.
Но если вы единственный разработчик, работающий над проектом, и ваш проект находится в начале своего жизненного цикла, то, я бы сказал, вам, вероятно, вообще не нужны ветки.
Комментарии:
1. Спасибо за ваш ответ. Я единственный разработчик в проекте, теперь я вижу, что это было слишком сложно.
2. Я считаю, что вы все равно получите преимущества от ветвления, даже если проект находится в самом начале своего жизненного цикла. Это освобождает вас, так что вы можете работать над несколькими отдельными функциями без необходимости тщательного
add
редактирования ваших коммитов.3. Лично, если я единственный, кто работает над проектом, и нет отзывов от пользователей / срочных ошибок, я предпочитаю последовательный процесс — функция за функцией, фиксация за фиксацией.
Ответ №3:
Забудьте о ветвях, которые вы делаете.
Ветви предназначены для разделения функциональности и новых функций, которые в rails часто задействуют весь стек.
Они также широко используются в многопользовательских ситуациях, но вы этого не описали.