Git "Live Server" Лучшие практики - PullRequest
4 голосов
/ 30 марта 2011

Мы с моим партнером пытались извлечь выгоду из репозитория, который затрагивает файлы, доступные для просмотра широкой публике, а не хранить репозитории в скрытом месте и просто отправлять файлы по FTP, когда мы считаем, что идти. Хотя возможность прямого нажатия на «живой сайт» была бы чрезвычайно удобной, мне интересно, какие негативные последствия (если таковые имеются) это может повлечь за собой.

Большое спасибо!

Ответы [ 4 ]

4 голосов
/ 31 марта 2011

Я бы рекомендовал тянуть, а не толкать, если вы идете по этому маршруту.

Всегда извлекайте готовый продукт и не выполняйте слияния на работающем сервере, поскольку в случае возникновения конфликтов вы будете стараться их исправить.Все слияния и т. Д. В вашей среде тестирования.Когда все будет хорошо, отправьте готовые результаты в «голое» репо для производственной ветви, а затем с производственной машины git pull с нее.

Да, это может быть еще одна точка отказа, однако я думаю, чтоПреимущества вне всяких минусов.

1 голос
/ 31 марта 2011

Похоже, вы являетесь кандидатом для сценариев развертывания.Я настоятельно рекомендую изучить Capistrano и Webistrano .С помощью этих инструментов вы можете легко выполнить развертывание из общедоступного репозитория git и обновить только код, необходимый на сервере.Кэшированная копия репо хранится на сервере, поэтому вы передаете только наборы изменений.Два упомянутых мною инструмента также позволяют легко откатывать изменения, управлять миграциями баз данных и т. Д. Webistrano, по сути, является веб-интерфейсом для Capistrano, который является жемчужиной рубина.Я также слышал хорошие вещи о Владе, но я не настолько знаком с этим.Желаем удачи.

1 голос
/ 30 марта 2011

VCS не должен быть инструментом развертывания (см. Использование git под веб-корнем в рабочей среде. ): достаточно простого ftp из одного файла (созданного с помощью git archive).

Если вы хотите использовать Git, используйте простое хранилище на стороне сервера, чтобы перейти на него, и post-receive hook , чтобы обновить рабочее дерево, которое будет представлять ваш сайт.

0 голосов
/ 08 февраля 2014

Я "проталкиваю" свою локальную разработку на Live Server следующим образом:

1.- Настроить ловушку на сервере .git / Крючки / после приема
включая эти строки:

     git pull
     git reset --hard

Предупреждение: сброс --hard удалит все изменения в рабочей области. (См. Ниже)

2.- Предоставить исполняемый файл прав на файл

 chmod +x .git/hooks/post-receive

3.- Разрешить репозиторию «non-bare» на работающем сервере получать Push

 git config receive.denyCurrentBranch ignore

Я работаю над своей локальной копией (для разработки), которая была клонирована непосредственно с живого сервера. и разверните, просто

 git push 

Чтобы избежать конфликтов, у меня есть соглашение: Всегда потяните перед нажатием Никогда не работайте на живом сайте и не фиксируйте на сервере.

Надеюсь, вы найдете этот метод полезным.

...