ru en

Настройка git, инструкция

Содержание

  1. Начальная инициализация

  2. Настройка удаленного репозитория в связке с BitBucket

  3. Настройка проекта для теста



В своей работы мы используем 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 и upload гит видит как файлы, нужно прописать по типу файлов(без закрывающего слеша), то есть /bitrix и /upload , можно и так и так для верности.

Внимание! Если шаблоны, пользовательские компоненты сайта, другие рабочие файлы проекта размещены в папке /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-ключей на БитБакете.


Оставить заявку