Настройка git, инструкция
Содержание
-
Начальная инициализация
-
Настройка удаленного репозитория в связке с BitBucket
-
Настройка проекта для теста
В своей работы мы используем Git - распределенную систему управления версиями.
У Git две основных задачи: первая — хранить информацию о всех изменениях в коде, начиная с самой первой строчки, а вторая — обеспечение удобства командной работы над кодом.
Начальная инициализация
Подключиться к серверу в консольном режиме через sftp или ssh и перейти в папку проекта.
Выполнить команду git init для инициализации локального репозитория на сервере
Чтобы запретить доступ к файлам извне, в папке .git добавить файл .htaccess, в котором прописать две строки:
Order allow,deny
Deny from all
Выполнить команды, чтобы в дальнейшем было понятно, кто отправляет коммиты в репозиторий:
git config --global user.name 'Your Name'
git config --global user.email 'your@email.com'
Добавить в корень проекта файл .gitignore (создать или скопировать существующий). В данном файле исключаются из отслеживания файлы ядра битрикс и другая служебная или отладочная информация.
Пример содержимого файла:
/bitrix/
/bitrix
/desktop_app/
/logs
/upload/
/upload
/debug/
/.gitignore
/.htaccess
/*.log
/*.sql
/*.txt
/*.xml
/*.dt
/*.html
/web.config
/*.png
/*.jpg
/*.gz
/cgi-bin/v
/test/
Командой git status посмотреть содержимое проекта, которое доступно для добавления в репозиторий, т.е. не игнорируется настройками в файле .gitignore. При необходимости добавить в список игнорируемых те или иные файлы или папки, к примеру, /favicon.ico.
Если при выполнении команды git status файлы с русскими буквами в названии показываются как “\320\220\...”, нужно выполнить команду
$ git config --global core.quotepath false
Командой git add
Внимание! Если шаблоны, пользовательские компоненты сайта, другие рабочие файлы проекта размещены в папке /bitrix/, то их нужно добавить специальным образом, так как папка bitrix игнорируется глобальными настройками в файле .gitignore
Примеры:
git add -f /bitrix/templates/main/
git add -f /bitrix/php_interface/init.php
Важно! После данных команд гит будет отслеживать изменения только тех файлов и папок, которые существовали на момент добавления. Если в процессе работы в папках, которые добавлены под контроль, но которые находятся в глобально игнорируемой области, появились новые файлы, то git status их не покажет, поэтому файлы нужно добавить, снова выполнив команду git add -f либо с указанием пути к конкретному файлу, либо повторив git add -f /bitrix/templates/main/
, если файлы добавлены в шаблон. По выше указанным причинам настоятельно рекомендуется вынести все рабочие файлы проекта (шаблоны, компоненты, модули, /php_interface/init.php) в папку /local/.
В /local/ помещаем
/templates/
/php_interface/ Кроме dbconn и других, связанных с подключением к БД
Выполнить команду git status
, чтобы убедиться, что не осталось файлов и папок, которые должны быть под контролем, но которые гит определяет как Untracked files
.
Выполнить команду git commit -a -m 'initial commit'
, чтобы создать первый коммит и зафиксировать это состояние как начальное.
Если для проекта достаточно хранить историю изменений файлов только на данном локальном сервере, этих действий достаточно.
Настройка удаленного репозитория в связке с BitBucket
Удаленный репозиторий нужен, чтобы иметь возможность работать над проектом из нескольких мест, используя гит-сервер BitBucket для синхронизации локальных репозиториев между собой.
Чтобы иметь возможность выполнять команды push и pull, должна быть установлена связка через ssh-ключи, которые являются своего рода подписями при обмене данными сервера с битбакет.
Создать на сервере ssh-ключи, если они еще не созданы (находятся обычно в папке .ssh). Для этого необходимо выполнить в консоли команду ssh-keygen (в диалогах команды можно нажимать Enter, отвечая на вопросы).
Перейти в папку, где созданы ключи, и скопировать в буфер обмена содержимое файла id_rsa.pub
Перейти в свой аккаунт на БитБакете, зайти на страницу управления ssh-ключами и добавить созданный на сервере ssh-ключ в список разрешенных.
Открыть страницу Overview репозитория и выполнить на сервере из консоли команды, которые показываются при клике на тексте I have an existing project, перед этим убедившись, что находимся в папке проекта.
git remote add origin git@bitbucket.org:user-login-git/site.ru.git
git push -u origin --all
git push -u origin --tags
Обратить внимание на
git remote add origin git@bitbucket.org:user-login-git/site.ru.git
бывает что может выглядеть так
git remote add origin https://git@bitbucket.org/user-login-git/site.ru.git
это где-то в настройках аккаунта установлено, что не ssh а https, для запроса нужно поправить в вид
git remote add origin git@bitbucket.org:user-login-git/site.ru.git
После этого связка сервера с БитБакетом завершена и репозиторий доступен для просмотра:
Настройка проекта для теста
Самый удобный способ для Битрикса - после выполнения предыдущих настроек создать полную копию сайта и развернуть ее на тестовом сервере, чтобы папка с гитом уже была на месте. Если тестовый сайт разворачивается на том же сервере, что и рабочий, то дополнительно ничего делать не надо, можно приступать к работе, меняя тестовый сайт, чтобы затем сделать коммиты и пуши в репозиторий на битбакете, а на рабочем сайте - пулл из репозитория на битбакете.
Если тестовый сайт разворачивается на другом сервере, то на тестовом сервере также требуется создать свой ssh-ключ, если его еще нет, и затем добавить в список ssh-ключей на БитБакете.