Ответ 1
- Локальные ветки важны, потому что вы можете создать столько, сколько хотите, и слить их довольно легко.
- Отслеживание веток (на самом деле локальное отделение после удаленного отслеживания) гораздо более актуальным в вашем случае, поскольку вы позволяете формально связывать локальную ветвь с удаленной, для целей публикации (еще одна отличная функция DVCS: вы можете " публиковать" фиксирует одно удаленное репо или другое)
Идея состоит в том, чтобы определить:
- голый репо для целей толкания
- a dev bare repo, где все разработчики могут продвигать свою текущую работу и/или тянуть работу от своих коллег (вроде локального "центрального" репо, но многие другие рабочие процессы существует, как описано в этой странице книги ProGit)
- голая промежуточная репо, в которой промежуточная ветка перемещается с помощью материала для проверки/проверки.
Команда QA может клонировать это репо, чтобы получить рабочий каталог, где они могут запускать и тестировать веб-сайт. - голый репо на сервере в производственной среде.
Менеджер prod может клонировать это, а затем rsync/ftp это на фактические серверы производства, которые будут управлять веб-сайтом в реальном времени.
Примечание: у вас не должно быть DVCS на фактическом сервере производства. У вас должно быть только то, что вам нужно для запуска/мониторинга производственной среды.
Основной рабочий процесс основан на нажатии/вытягивании ветвей между этими средами (РЕПО):
- на dev и промежуточном репо вы можете поддерживать несколько официальных публичных ветвей, немного как Git сопровождающий Хулио К. Хамано делает это с его "публичными" , "maint" , "next" , "pu" ветвями.
- прежде чем нажимать что-либо на этап, вы можете rebase свою работу сначала поверх удаленной промежуточной ветки для локального решения любой конфликт и обновить работу локального разработчика с любым обнаруженным/выполненным исправлением в промежуточной области.
- нажатие от этапа к prod должно быть тривиальным (никаких конфликтов, так как на стороне prod repo не производится никаких изменений)
- вы можете определить привязки на промежуточном репо и prod repo, чтобы принимать только определенные ветки и отказываться от создания ветки (в отличие от всех репозиций dev, где вы можете определить/нажать/вытащить столько ветвей, сколько вам нужно)