Я хочу начать использовать систему контроля версий (git), чтобы управлять несколькими разработчиками веб-сайтов, работающими над веб-сайтами. Таким образом, мы все можем видеть, кто какие изменения внес и в какое время.
Я немного поискал и нашел этот руководство по отправке кода на рабочий сервер. Мои знания git на самом деле не выходят за рамки простых коммитов и подталкивания / вытягивания, поэтому у меня есть несколько вопросов об этом.
Отправка кода на работающий сервер кажется немного рискованным. Было бы хорошо сохранить производственный код в основной ветке и поместить новые функции / исправления ошибок в отдельные ветки. Затем другие разработчики могут извлечь эти ветки и проверить их и т. Д., Прежде чем объединять их в мастер?
Как я могу управлять разрешениями на сайте docroot? Если два разных пользователя отправляют свой код на сервер, как мне сделать так, чтобы эти файлы принадлежали www-data: www-data, когда они отправляются в docroot?
Прежде всего поздравляю! Всегда полезно иметь систему контроля версий для управления вашим кодом.
Ваша догадка верна, всегда хорошо иметь две отдельные копии репозитория, одну для разработки и одну для динамического развертывания, вы должны назначить диспетчера релизов для отправки живого кода или иметь какую-то процедуру.
Позвольте всем выталкивать / извлекать из репозитория devel и защищать репозиторий prod, а затем, когда код готов к выходу, просто вставьте все необходимые изменения из репозитория devel в репозиторий в реальном времени и отправьте оттуда на все живые серверы.
Что касается разрешений, я рекомендую всегда нажимать в качестве пользователя, которому вы пишете, поэтому, если вы развертываете с помощью перекрестных ключей ssh от вашего пользователя развертывания (помните, должны быть отделены от devel, чтобы избежать соблазна) вашему пользователю www-data , если не просто добавить еще один шаг в сценарии развертывания в chown
файлы