Использование git для публикации на веб-сайте - PullRequest
10 голосов
/ 08 февраля 2011

Я использовал это руководство, чтобы использовать git для автоматической публикации моих изменений на моем веб-сайте, когда я отправляю в свой удаленный исходный репозиторий git:

http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/

Вот мои / hooks / post-updatefile:

cd ../../public_html/dir/wbg
env -i git pull

Вот моя структура каталогов:

/ home / git / wbg.git <- мой удаленный репозиторий git </p>

/ home / public_html / dir /wbg <- моя веб-папка </p>

Когда я запускаю

git push origin master

Хранилище обновляется, но моя веб-папка все еще пуста.Любые идеи?

Редактировать: если какой-то будущий трафик видит это, моя настоящая проблема была в том, что ОБА ваш удаленный источник И каталог вашего сайта назначения должен быть git-репозиториями.Вы не можете просто настроить его для копирования вашего проекта в новую папку, если только эта папка не является git-репо.

Ответы [ 3 ]

13 голосов
/ 11 февраля 2011

Вы можете найти лучшую альтернативу в http://toroid.org/ams/git-website-howto, которая использует только один репозиторий git и позволяет всем метаданным и предыдущей истории оставаться за пределами DocumentRoot.

Используемое вами руководство и ссылка, на которую я ссылался, ссылаются на другую статью, но одна из них, на которую я ссылался, кажется предпочтительной для направления новых пользователей на канал #git IRC.

6 голосов
/ 09 февраля 2011

Отсюда не так уж и много, но я могу сообщить, что я успешно использую метод, подобный этому.

В своих целях я называю свой пустой серверный репозиторий "Hub" и мой веб-сервер.Облицовочный репозиторий "Прайм".Убедитесь, что вы правильно инициализировали git-репозиторий в своем каталоге htdocs сервера (Prime) и либо передали изменения в пустой репозиторий (Hub), либо извлекли их.

Это хук post-update, который яuse, который находится в каталоге хуков моего репозитория:

#!/bin/sh

echo
echo "*** Pulling changes into Prime"
echo

cd /path/to/htdocs/ || exit
unset GIT_DIR
git pull hub master

exec git-update-server-info

Убедитесь, что это исполняемый файл!Если сомневаетесь, просто отредактируйте файл post-update.sample и удалите расширение .sample, когда закончите.Отраженный текст дает хороший отзыв о том, что копирование действительно происходит.Если вы не видите этот текст, значит, он не тянет изменения.И если вы не собираетесь называть свой удаленный репозиторий «концентратором», замените его на «источник» или что-то другое, что вы решите использовать.

В качестве меры предосторожности, чтобы мои Prime и локальные репозитории не стали слишком большимииз-за этого у меня в качестве основного post-commit хука есть:

#!/bin/sh

echo
echo "*** Pushing changes to Hub"
echo

git push hub

Тогда я могу просто перенести изменения из Hub в мой локальный репозиторий.

1 голос
/ 08 февраля 2011

Вы можете начать с пост-обновления, чтобы повторить вывод отладочной информации. Как стандартный вывод, так и стандартный вывод ошибок пересылаются в git send-pack на другом конце, так что вы можете просто выводить сообщения и видеть их на клиенте, который вы сделали git push. Я предполагаю, что вы следовали руководству по слову, сделали исполняемый скрипт после обновления, клонировали репо в веб-папку и т. Д.

...