Данная статья будет полезна тем разработчикам, кто стремится добиться одной из следующих целей:
Требования:
Прмеры в данной статье даны в виде текстовых команд для командной оболочки операционной системы. На клиентской сторне (компьютере разработчика) часть команд может быть выполнена и из графической оболочки Git.
Внимание: на случай если что-то пойдет не так при синхронизации через Git лучше иметь при себе архив (бекап) рабочей копии. Поэтому убедитесь, что вы сделали копию перед любыми экспериментами или применением данных инструкций.
Примеры команд даны применительно к Unix-подобным системам. Для использования их в Windows среде, возможно, потребуется установить дополнительное ПО.
Для создания локальной копии (для разработки) давайте скопируем (клонируем) файлы из официального Git репозитория Котонти. Термин клонирование употреблен здесь как прямой перевод термина «clone» используемого в системе Git. Для клонирования в локальную директорию, выбираем ее (использую команду `cd`), а затем используем следующее:
git clone -o cotonti git://github.com/Cotonti/Cotonti.git .
Опция `-o` отвечает за то, что будет использован репозиторий с именем `cotonti`, вместо стандартного (по умолчанию) `origin`.Точка в конце строки указывает на то, что копия будет размещена в текущем каталоге (именно для этого каталог надо выбрать заранее). При необходимости можно указать прямой путь в к необходимой папке. В результате мы получим последнюю (самую свежую) копию ветки `Siena/master`.
Если вы используете ветку `Genoa`, то команда будет выглядеть так:
git clone -o cotonti -b genoa git://github.com/Cotonti/Cotonti.git .
Ключ `-b` задает имя ветки источника. По умолчанию это master (siena).
После клонирования (создания локальной копии) вы можете легко переключиться на любую конкретную версию Cotonti. Каждая отдельная (выпускавшаяся) версия в репозитории описана собственным тегом, вида "cotonti-x.y.z". Для переключения на конкретную ветку используем это тег:
git checkout cotonti-x.y.z
Теперь у вас есть локальная копия актуальной (или любой другой на выбор) версии Котонти. Вы можете производить над ней любые опыты и применять любые команды Git. В разделе «ссылки» вы можете найти ссылки на различные ресурсы описывающии использование Git в повседневной разработке.
Если вы готовы создать репозиторий на своем рабочем сервере, и синхронизировать вашу локальную копию с сервером, используйте следующие команды:
ssh -l your_login example.com mkdir site.git && cd site.git git init --bare echo -e "#!/bin/sh\nGIT_WORK_TREE=/path/to/htdocs git checkout -f" > hooks/post-receive chmod +x hooks/post-receive
Первая команда подключит вас к вашему серверу по SSH (настройка SSH выходит за рамки данной инструкции, но вы без труда найдете описания в интернете). Строки 2-3 создают отдельную папку для служебных файлов Git и инициализаруют новый репозиторий в этой папке. Строка 4 создает скрипт, который будет автоматически применять изменения для вашего сайта. Замените `/path/to/htdocs` строкой с актуальным путем к файлам вашего сайта. 5-я строка делает этот скрипт исполняемым.
Затем мы можем вернуться к компьютеру разработчика и отправить файлы на сервер:
git remote add site ssh://your_login@example.com/path/to/site.git git push site master
Замените имя ветки `master` на `genoa` (или другую) актуальную для вас.
Теперь вы можете использовать команды для синхронизации описанные в одном из следующих разделов.
Для использования этого сценария, полагаем, что вы уже настроили и инифиализировали репозиторий `site.git` на вашем веб сервере (см. предыдущий раздел). Если репозиторий был инициализирован, но вы не добавляли никаких файлов для мониторинга изменений в Git, тогда необходимо перейти в каталог файлов сайта и выполнить команду `git add`:
ssh -l your_login example.com cd /path/to/htdocs GIT_DIR=/path/to/site.git git add . GIT_DIR=/path/to/site.git git commit -q -m "Added site files"
Примечание: использование переменной GIT_DIR необходимо при вызове команд Git на червере, потому, что файлы Git храняться отдельно от файлов самого сайта.
После того как выш удаленнй репозиторий `site.git` заполнен и имеет актуальную копию, выши коллеги по разработке могут клонировать репозиторий на свои локальные ПК:
git clone -o site ssh://user2_login@example.com/path/to/site.git
Укажите аргумент `-b genoa`, если импользуете ветку Genoa. Еще можно внести основной репозиторий в список удаленных:
git remote add cotonti git://github.com/Cotonti/Cotonti.git
Это позволит боле просто использовать команды отправки (pull) и получения (push) изменений с основного сервера (конкретные команд приведены в следующем разделе)..
Если вы настроили локальный и рабочий репозиторий (как описано выше) вы можете использовать команды описанные в разделе ниже.
Примечение: если используете версию `Genoa` замените имя ветки с `master` на `genoa` во всех приведенных комендах.
Для обновления локальной копии до последней актуальной версии Cotonti (получение последних изменений) используйте:
git pull cotonti master
Для применения текущих изменений к вашему сайту:
git push site master
Для получения с рабочего сайта (вашего веб-сервера) изменений внесенных разработчиками из вашей команды:
git pull site master