Что такое Git
Git — система контроля версий, которая позволяет хранить и отслеживать внесенные в файлы изменения. С Git над одним проектом могут работать несколько разработчиков.
Для создания проекта (например, сайта) с использованием Git вам понадобится:
- Локальный репозиторий — хранилище Git на локальном компьютере. Сначала вы работаете над проектом на своем рабочем компьютере и сохраняете изменения в локальный репозиторий с помощью коммита (commit). Затем помещаете (push) изменения в удаленный репозиторий. Если над проектом работают несколько разработчиков, у каждого свой локальный репозиторий.
- Удаленный репозиторий — система управления репозиториями кода для Git. Например: GitHub, GitLab, Bitbucket. После завершения локальной работы над кодом каждый разработчик проекта отправляет свою часть кода или изменения в удаленный репозиторий, где всё сливается (merge) воедино, а затем разворачивается (deploy) на сервер проекта.
- Сервер проекта — это виртуальный хостинг, VPS или любой другой сервер. Развернуть свой проект можно несколькими способами. Существуют системы автоматического развёртывания из удаленного репозитория, а также ручное клонирование с помощью Git.
На хостинге Рег.ру установлен Git, благодаря чему вы сможете упростить процесс разработки и публикации сайта. Обратите внимание: на хостинге Рег.ру по умолчанию используется Git версии 1.7.1. Для запуска версии 2.19.2 используйте алиас git2192.
Ниже рассмотрим, как поместить код в удалённый репозиторий на примере GitHub и как клонировать файлы на услугу хостинга.
Подготовка к работе
- 1. Для работы вам необходимо скачать Git с официального сайта и установить на свой локальный компьютер. Для пользователей Linux Git, как правило, доступен из коробки. Для пользователей Windows рекомендуем использовать графические оболочки, например SmartGit или GitKraken.
-
2.
Работа с Git происходит через терминал. Если у вас нет локального репозитория, создайте его в каталоге проекта с помощью команды
git init
-
3.
Файлы, которые необходимо отправить в удалённый репозиторий, добавьте с помощью команды
git add каталог/название_файла
или же выполните командуgit add .
, чтобы добавить все папки и файлы, которые находятся в каталоге вашего проекта. - 4. Создайте коммит с помощью команды
git commit -m "any comment"
Готово, вы создали репозиторий, добавили туда файлы проекта и сделали свой первый коммит. Подробнее о работе с Git, создании веток, слиянии, откате изменений и прочих командах вы можете узнать в официальной документации.
Отправка изменений в удаленный репозиторий
Все команды будут выстроены на примере работы с GitHub. Работа с другими хранилищами репозитория происходит по аналогии.
- 1 На сайте GitHub создайте репозиторий. После этого вы получите ссылку на ваш репозиторий, например: https://github.com/userName/regru-hosting.git
-
2
На локальном компьютере, в терминале, добавьте ссылку удалённого репозитория с помощью команды:
git remote add origin https://github.com/userName/regru-hosting.git
-
3
Затем отправьте изменения в удаленный репозиторий с помощью команды:
git push origin master
Система запросит ваш логин и пароль от GitHub.
Готово, после завершения отправки ваши файлы появятся в удалённом репозитории на GitHub.
Публикация сайта с GitHub на хостинг
Ваш домен должен быть привязан к услуге хостинга.
Чтобы клонировать изменения с GitHub на хостинг Рег.ру:
- 1 Подключитесь к вашей услуге хостинга по SSH.
- 2 Перейдите в корневой каталог вашего сайта.
-
3
Выполните команду:
git clone https://github.com/mrradu/regru-hosting.git.
Важно: в конце команды должна стоять точка. Это нужно для копирования самих файлов из репозитория в корневой каталог. Иначе в корневой каталог будет загружен каталог репозитория, а уже затем в него сами файлы.
В дальнейшем вместо команды из 3 шага вы можете выполнить команду git pull
, которая будет синхронизировать файлы на хостинге с файлами из репозитория.
Что такое git pull
git pull — это команда, которая скачивает изменения из удаленного репозитория и объединяет их с локальным репозиторием.
Команда git pull
фактически выполняет две операции одновременно: git fetch
для получения изменений из удаленного репозитория и git merge
для объединения этих изменений с локальной веткой.
Если в удаленном репозитории были внесены изменения, которых нет в локальном репозитории, то git pull обновит локальную копию кода до самой свежей версии. В случае возникновения конфликтов (например, если одна и та же строка кода была изменена как в удаленном, так и в локальном репозитории), Git может попросить вас разрешить эти конфликты вручную.
Чтобы воспользоваться командой:
-
1
Перейдите в нужную ветку с помощью команды:
git checkout main
Где main — имя ветки.
-
2
Выполните команду:
git pull
Готово, теперь вы можете работать над проектом локально, сохранять свои изменения в удалённом репозитории, а затем публиковать их на хостинг.
Создание открытого SSH-ключа
Проверьте, есть ли SSH-ключи на вашем хостинге. Для этого:
-
1
Перейдите в каталог, в котором они хранятся:
cd ~/.ssh
Запросите содержимое каталога:
ls
-
2
В зависимости от вывода команды выберите нужный вариант.
- Если в выводе команды отображается следующее содержимое:
authorized_keys2 id_rsa known_hosts config id_rsa.pub
Где id_rsa.pub — открытый ключ, а id_rsa — приватный ключ.
Перейдите в каталог, в котором хранятся SSH-ключи:
cd ~/.ssh/
Откройте файл командой:
cat id_rsa.pub
- Если в выводе команды вы видите ошибку «No such file or directory», создайте ключи самостоятельно. Для этого: Запустите утилиту:
ssh-keygen
Укажите имя файла:
Enter file in which to save the key (~/.ssh/id_rsa): id_rsa
Где id_rsa — имя файла без расширения.
Укажите пароль:
Enter passphrase (empty for no passphrase):
Вы можете оставить пароль пустым, для этого нажмите Enter.
Перейдите в каталог, в котором хранятся SSH-пароли:
cd ~/.ssh/
Откройте файл командой:
cat id_rsa.pub
Где id_rsa.pub — название файла открытого ключа.
Готово, вы сгенерировали ключи.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊