Простой git post-commit hook для копирования зафиксированных файлов в определенную папку - PullRequest
19 голосов
/ 03 октября 2011

Я хотел бы автоматически скопировать зафиксированные файлы в определенную папку, чтобы их можно было просматривать в браузере, но я хотел бы сделать это без необходимости создавать пустой репозиторий, который отражает основной репозиторий (как показано здесь ) и я хотел бы, чтобы это происходило при коммите.

Есть ли простой способ создать хук, который считывает, какие файлы были зафиксированы и копирует их / обновляет их на живом веб-сервере?

Например: у меня есть папка с именем /example.com и git-репозиторий.Я хочу, чтобы при фиксации index.html в репозитории соответствующий файл index.html из /example.com обновлялся содержимым зафиксированного файла

1 Ответ

24 голосов
/ 03 октября 2011

Хороший способ сделать это - создать post-commit, который запускает git checkout -f с рабочим деревом, установленным в каталог, который открыт вашим веб-сервером, и в каталоге git, установленном в каталог .git в вашей разработке.репозиторий.Например, вы можете создать файл .git/hooks/post-commit, который:

#!/bin/sh
unset GIT_INDEX_FILE
export GIT_WORK_TREE=/example.com/
export GIT_DIR=/home/whoever/development/web-project/.git/
git checkout -f

Будьте осторожны с этим, однако - -f означает, что git может удалять или перезаписывать файлы, чтобы /example.com/ соответствовал деревув вашем последнем коммите.

(Не забудьте также сделать исполняемый файл .git/hooks/post-commit.)

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