Итак, с чего нужно начинать? Для начала убедимся, что под рукой всё необходимое (просьба не смеяться - всяко бывает), как то, удаленный доступ к удаленному же серверу (например по ssh). На этом сервере нужно инициализировать два git репозитория - один для ядра, другой для самого сайта, на котором будет устанавливаться ядро Drupal. Для примера, создадим на сервере пользователя с именем "git". Тогда инициализация репозиториев будет выглядеть следующим образом:
cd /home/git/ mkdir bare cd bare mkdir core mkdir project cd core git init --bare cd /home/git/bare/project git init --bare
Следующим шагом будет создание мастер ветки в репозитории ядра. Это можно сделать с любой тестовой площадки: нужно только создать директорию, в которой будут находиться файлы ядра (в нашем случае это будет /var/www/site_core), подтянуть git репозиторий ядра, созданный на предыдущем этапе (предположим, доступ к удаленному серверу осуществляется по пути ssh://[email protected]), а далее произвести первый коммит для создания мастер ветки в репозитории. Выглядит все это так:
cd /var/www/ mkdir site_core cd site_core git clone ssh://[email protected]/home/git/bare/core ./ touch Readme.txt echo 'Core repo' > Readme.txt git add . git commit -m "Initial commit" git push origin master
После этого у нас есть полностью инициализированный и готовый к работе git репозиторий ядра Drupal, но пока в нем нет самих файлов ядра. Следовательно, добавляем их (заметьте, находимся мы все еще в /var/www/site_core). Также, нам нужно удалить и добавить в .gitignore те папки, которые могут изменяться в процессе работы над сайтом. Если этого не сделать, то при запуске комманды обновления сабмодулей (git submodule update) содержимое таких папок будет приведено к первоначальному состоянию, а это значит, добавленные модули будут удалены. Это папки "modules" и "sites":
git checkout -b 8.x wget http://ftp.drupal.org/files/projects/drupal-8.x-dev.tar.gz tar -xzvf drupal-8.x-dev.tar.gz -C /tmp && mv /tmp/drupal-8.x-dev/* /var/www/site_core rm -rf sites/ modules/ git add . git commit -m "Add core files" git push origin 8.x touch .gitignore echo modules > .gitignore echo sites >> .gitignore git add .gitignore git commit -m "Disalow modules and sites folders" git push