«Голый» репозиторий git: как я могу позволить Apache всегда «видеть» последний коммит? - PullRequest
3 голосов
/ 25 сентября 2011

У нас есть «голое» хранилище git на сервере для проекта веб-портала. Несколько программистов, дизайнеров и т. Д. Выполняют десятки push и pull из / в него.

Теперь мы хотим протестировать проект на самом сервере и всегда проверять последний коммит через веб-сервер Apache, который установлен на той же машине, на которой хранится «голое» хранилище git.

Как мы можем «разархивировать» репозиторий, и пусть рабочий каталог содержит всегда и только последний коммит, полученный из последнего push?

Или что-то еще, направленное на достижение того же результата?

1 Ответ

6 голосов
/ 25 сентября 2011

Вы можете использовать ловушку после получения, чтобы сделать git pull в вашем webserver корне / хранилище документов.

в вашем голом хранилище выполните

mv hooks/post-receive.sample hooks/post-receive
chmod +x .git/hooks/post-receive

сообщение должно быть примерно таким:

#!/bin/sh
WEB_ROOT='/var/www/project'
cd $WEB_ROOT
git pull

Более элегантное решение , котороеПредполагается, что область веб-сервера является репозиторием git, вы также можете просмотреть документацию git о hooks

Примечание: если вы используете простое решение, убедитесь, что ваш веб-серверобслуживайте каталог .git, это даст некоторым хакерам / взломщикам доступ к исходному коду сайта!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...