Я использую это для критического обслуживания веб-сайта. Я единственный разработчик, но у меня есть ветки мастера, разработки и выпуска.
Мой рабочий процесс по настройке сайта выглядит следующим образом:
Сделать работоспособную мастер ветку. Сделайте начальный коммит.
Оформить заказ на разработку филиала. Ничего не делайте, разработайте функции в качестве тестового буфера для слияния с мастером.
Оформить заказ ветка. Закодируйте свою проблему, когда она будет завершена, включите ее в разработку, посмотрите, возникнут ли какие-либо проблемы, конфликты слияний и т. Д. ... исправьте их.
Когда в выпуске объединено достаточно проблем для выпуска, и разработка была проверена на стабильность, вытащите разработку в мастер.
Master
|
Develop - E
/ | \ \
A B C D
Таким образом, вы получаете полную тестовую коллекцию в разработке, где вы можете тестировать стабильность, проблемы и т. Д., Не рискуя нанести вред Мастеру и не откатывать коммиты, если они были вредными.
Кроме того, используя отдельные ветки для фиксации, вы можете «оставить» работу, которую вы уже сделали, начать с чего-то другого, чтобы исправить более неотложную проблему, и развернуть ее раньше.
В реальной жизни у меня обычно есть одна ветвь проблем, и я использую эту ветвь в разработке, а затем в мастерской. Иногда это утомительно, но раз в два месяца, по крайней мере, мне приходится бросать работу без промедления, потому что у кого-то возникла идея, что я должен сделать RightNow ™, и таким образом я могу быстро переключиться обратно в базовое состояние, сделать вещь и затем продолжите, где я был. Особенно с большими проектами, которые занимают несколько недель, это хорошая идея, что я могу быстро переключаться между филиалами.
Рассмотрим следующий сценарий: вы всегда работаете над основной веткой, и у вас есть AwesomeCodeThing ™ в работах, которая оставляет вашу ветку Master в хирургии открытого сердца, и появляется всплывающее окно YugeBug ™, требующее срочного исправления, в противном случае тысячи пользователей будут жаловаться вам на BigProblems ™
. Единственный способ быстро решить вашу проблему в таком сценарии,
- проверьте ваши предыдущие коммиты,
- посмотрите, когда был ваш последний стабильный коммит (ругаться необязательно)
- откат к этому коммиту
- сделать исправление, подтолкнуть исправление к производству
- решить все конфликты и проблемы, которые у вас сейчас есть, пытаясь вернуться в статус AwesomeCodeThing ™
- сдавайся, плачь и начинай работать заново (необязательно)
Если вы используете филиалы:
- Мастер проверки
- создать ветку UrgentFix ™ и исправить вещи
- потяните UrgentFix ™ в мастер
- подтолкнуть к производству
- Объединить мастер в развитие
- Объединить развиваться в AwesomeCodeThing ™
- возьмите пиво и продолжайте работать.