Рабочий процесс удаленного репозитория Git с локальными ветками разработки и мастера?

Я пытаюсь изучить и разработать лучшие практики с git. Я читал практику ветвления потока git, когда дело доходит до ветвления. Основываясь на этой практике, мои ветки должны быть

master
develop
hotfix
feature

Я разрабатываю на своей локальной машине, используя локальное репо. У меня есть два удаленных голых репозитория, на которые я буду нажимать. Один из них является TEST-сервером, а второй — рабочим сервером LIVE. В обоих этих удаленных репозиториях есть хук после получения.

Предполагается, что главная ветвь зарезервирована только для конечного производственного кода. Итак, какую ветку я должен отправить на тестовый сервер? В настоящее время мне нужно объединить разработку с мастером, а затем отправить локальный мастер в ТЕСТ. Но, если у меня есть какое-либо редактирование после этого толчка, мастер был изменен и не был действительно готов к производству. Должен ли я продвигать ветку разработки на тестовый сервер? И затем, после окончательного утверждения, слияние и разработка на мастере, а затем отправка мастера на LIVE-сервер?

Я не понимаю, почему я так смущен этим? Я думаю, что боюсь сделать какие-либо ошибки.


person MAZUMA    schedule 11.12.2012    source источник


Ответы (2)


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

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

person Tim Jarvis    schedule 11.12.2012
comment
Как удаленный узнает, какая ветвь должна быть активной, так сказать? - person MAZUMA; 12.12.2012
comment
Кажется, у вас сложилось впечатление, что активна только 1 ветвь, обычно это не так (особенно для тестирования), обычно у вас будет программное обеспечение CI (TeamCity, Jenkins, Cruisecontrol... что угодно) со сборкой проектов на всех ветки, которые вы тестируете. Таким образом, вы можете иметь непрерывную интеграцию с давно работающими тематическими ветками, а также с вашей выпускной веткой. - person Tim Jarvis; 12.12.2012
comment
Да, я действительно новичок в этой игре. В настоящее время, хотя я всего лишь один разработчик, работающий над этим сайтом. Это довольно большой сайт, созданный с нуля. Я использую git, чтобы справляться с несколькими направлениями разработки. Будет ли программное обеспечение CI полезным для одинокого разработчика или здесь есть другое решение? - person MAZUMA; 12.12.2012

У меня похожая архитектура: мастер, исправление и разработка.

Представьте, что вам нужно разработать новую функцию. Каковы мои шаги:

Каждая новая функция имеет новую ветвь:

git checkout -b issue1234
<make some updates...>
git commit -a -m 'mensagem'
git push origin issue1234

Вы можете объединиться с веткой разработки, просто чтобы посмотреть, как она работает с другими разработками, и запустить тестовые примеры.

git checkout dev
git merge issue1234
git push

Люди делают несколько тестов, редактируют его и решают, что он готов к развертыванию!

git checkout master
git merge issue1234
git push

Обратите внимание, что я никогда не объединяю master с develop. Просто функции объединены.

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

person Josir    schedule 11.12.2012
comment
Ok. Я понимаю процесс, который вы описываете. Чего я не понимаю, так это того, как просмотреть новые изменения, отправленные в ветку разработки на удаленном компьютере из браузера. Я использую удаленный сервер для размещения дубликата сайта, который я разрабатываю. Здесь я вношу изменения для утверждения клиентами. Если никаких изменений, я могу объединить ветку с мастером, а затем нажать на мой LIVE-сервер. Если есть изменения, я могу их внести и отправить обратно на пульт. - person MAZUMA; 12.12.2012