Есть сайт, над которым работают одновременно несколько разработчиков.
Есть сервер, назовем его dev.test.ru, на котором стоит ubuntu, nginx, php, mysql, git и демо сайт,
и есть компьютеры разработчиков, преимущественно на Windows.
Как правильно создать репозиторий в GIT, чтобы в него все могли пушить и эти изменения сразу же отображались на сайте dev.test.ru, потому что происходит активная разработка сайта. После того как изменения все фиксируются и происходит релиз, мы копируем на продакшн сервер код. Но как решить вопрос с GIT в данном случае?
Забыл добавить - сейчас используем Gitlab, но тащить гитлаб на свой сервер не хочется, хочется сделать все через терминал.
Гит настраивается очень просто: сервер добавляется в remotes у разработчиков. Это все есть на официальном сайте гита, в GitBook.
Нужно поставить CI-софт (Jenkins, TeamCity, etc), который будет пулить изменения, гонять тесты и деплоить куда надо. Кроме того, неплохо было бы прикрутить что-то вроде GitLab, чтобы все коммиты разрешались только через пулл-реквесты.
1. Создать на сервере bare-репозиторий;
2. Добавить в рабочие копии разработчиков новый remote на этот сервер;
3. В bare-репозитории добавить хук (я использую update), в котором сделать чекаут нужной ветки в нужный каталог;
4. Запустить при необходимости тесты
1. git сервер, можно взять saas решения (гитхаб, гитлаб и т.п.) или сделать свой (самое простое - просто ssh доступ к серверу и сделанный там git init --bare)
2. git clone на dev сервере
3. Хук post-receive на git сервере, который сходит по ssh на dev сервер и сделает там git pull. В случае гитхаб и т.п. - смотреть их вебхуки и т.п. - и по их вызову уже делать git pull). Конечно, всякие миграции и прочее придется исполнять руками. Или брать системы деплоя уже и использовать их.