Git помогает загружать и обновлять проект на хостинге без ручного копирования файлов через FTP. Вместо того чтобы каждый раз переносить измененные файлы по одному, разработчик сохраняет изменения в репозитории, отправляет их на GitHub, GitLab или другой сервис, а затем подтягивает актуальную версию проекта на сервер.
Такой подход удобен для сайтов, которые регулярно дорабатываются: лендингов, корпоративных ресурсов, интернет-магазинов, веб-приложений, проектов на фреймворках и CMS с собственной темой или кастомными модулями. Git позволяет видеть историю изменений, быстро возвращаться к предыдущим версиям и работать над проектом вместе с командой.
На хостинге REG.RU Git установлен и может использоваться для публикации проекта через SSH. В этой статье разберем, как подготовить локальный репозиторий, отправить код в удаленное хранилище, клонировать проект на хостинг, обновлять сайт командой git pull и избежать частых ошибок при работе.
Git — это система контроля версий. Она отслеживает изменения в файлах проекта и позволяет сохранять их в виде коммитов. Каждый коммит можно воспринимать как контрольную точку: в ней зафиксировано, какие файлы изменились, что было добавлено, удалено или исправлено.
В обычной работе с сайтом Git решает несколько практических задач. Он помогает не потерять изменения, работать над проектом с несколькими разработчиками, хранить код в удаленном репозитории и разворачивать обновления на сервере более аккуратно.
Без Git владелец сайта часто работает по схеме «скачал файл, изменил, загрузил обратно». При таком подходе легко заменить не ту версию, забыть часть файлов или случайно удалить важный каталог. Git делает процесс более управляемым: изменения сначала фиксируются локально, затем отправляются в удаленный репозиторий, а уже после этого публикуются на хостинге.
Чтобы понять процесс публикации сайта через Git, важно различать три части: локальный репозиторий, удаленный репозиторий и сервер проекта.
Локальный репозиторий находится на компьютере разработчика. Именно там обычно создаются файлы сайта, вносятся правки, тестируются изменения, выполняются коммиты и подготавливается новая версия проекта.
Если над сайтом работает несколько человек, у каждого может быть собственная локальная копия проекта.
Удаленный репозиторий размещается в сервисе для хранения кода. Чаще всего используют GitHub, GitLab или Bitbucket. В него разработчики отправляют свои изменения командой push.
Удаленное хранилище становится центральной точкой проекта. Там можно хранить основную ветку, принимать изменения от команды, смотреть историю коммитов и управлять доступами.
Сервер проекта — это хостинг, VPS или другая площадка, где сайт открывается для посетителей. В случае REG.RU проект можно развернуть на виртуальном хостинге, если доступен SSH и команда Git.
На стороне хостинга обычно выполняют клонирование репозитория или обновление уже загруженного проекта командой git pull.
На хостинге REG.RU Git установлен по умолчанию. При этом стандартная версия Git — 1.7.1. Если нужно использовать версию 2.19.2, применяется алиас: git2192
Это важно учитывать, если проект использует команды или сценарии, рассчитанные на более современные версии Git. Для простого клонирования репозитория и обновления файлов часто достаточно стандартных возможностей, но при сложных рабочих процессах версия может иметь значение.
Для работы с Git на хостинге понадобится SSH-доступ. Через SSH пользователь подключается к серверу, переходит в корневую папку сайта и выполняет команды Git непосредственно на хостинге.
Если вы только выбираете площадку для проекта и хотите заранее оценить поддержку SSH, Git, FTP, SFTP, панель управления, работу с доменами и DNS, полезно изучить обзор хостинга REG.RU, чтобы понять, какие инструменты доступны для размещения и обновления сайта.
Перед публикацией сайта через Git убедитесь, что готовы основные элементы:
Особое внимание стоит уделить корневой папке сайта. Если выполнить клонирование не в ту директорию, проект загрузится на сервер, но сайт в браузере может не измениться.
Для работы с Git на локальном компьютере должна быть установлена соответствующая программа. На Linux Git часто уже доступен в системе. На Windows можно использовать Git через терминал или графические оболочки, например SmartGit или GitKraken.
После установки откройте терминал и перейдите в папку проекта.
Если проект еще не является Git-репозиторием, выполните команду:
git init
После этого Git начнет отслеживать изменения внутри текущей папки проекта.
Чтобы подготовить файлы к сохранению, добавьте их в индекс. Для одного файла или каталога используется команда:
git add каталог/название_файла
Если нужно добавить все файлы и папки из текущего каталога, выполните:
git add .
Перед выполнением этой команды желательно проверить файл .gitignore, чтобы в репозиторий случайно не попали кеш, временные файлы, локальные настройки, резервные копии, дампы базы данных и конфиденциальные данные.
Коммит сохраняет текущее состояние проекта в истории Git. Выполните команду:
git commit -m "any comment"
Текст внутри кавычек можно заменить на понятное описание изменения. Например, для первой версии проекта можно использовать комментарий о начальной публикации.
Откройте выбранный сервис хранения кода и создайте новый репозиторий. После создания сервис покажет ссылку на репозиторий. Она может выглядеть так:
https://github.com/userName/regru-hosting.git
В реальном проекте вместо userName и regru-hosting будут ваши значения.
На локальном компьютере в терминале выполните команду:
git remote add origin https://github.com/userName/regru-hosting.git
Эта команда связывает локальный проект с удаленным репозиторием, который будет использоваться для отправки изменений.
Чтобы передать код в удаленное хранилище, выполните:
git push origin master
Система может запросить логин и пароль или другой способ авторизации в сервисе хранения кода. После успешного выполнения команды файлы проекта появятся в удаленном репозитории.
В некоторых новых репозиториях основная ветка может называться не master, а main. В этом случае используйте имя ветки, которое указано в вашем репозитории.
Для публикации проекта необходимо подключиться к услуге хостинга через SSH. На macOS и Linux можно использовать встроенный терминал. На Windows подойдет Windows Terminal, PowerShell с OpenSSH или PuTTY.
Общий вид команды подключения:
ssh username@server
Вместо username укажите логин хостинга, а вместо server — адрес сервера из параметров услуги.
После входа по SSH нужно перейти в директорию домена. Именно из нее сервер показывает сайт в браузере.
Для перехода используется команда:
cd путь_к_папке_сайта
Вместо путь_к_папке_сайта укажите фактический путь к корневой папке домена. Его можно посмотреть в панели управления хостингом.
Когда вы находитесь в нужном каталоге, выполните команду:
git clone https://github.com/mrradu/regru-hosting.git .
Точка в конце команды обязательна, если нужно загрузить сами файлы репозитория прямо в текущую корневую папку сайта. Если точку убрать, Git создаст внутри корня отдельную папку репозитория, и файлы окажутся на уровень глубже. Из-за этого сайт может не открыться или показывать старую страницу.
После клонирования убедитесь, что файлы проекта появились именно в корневой папке сайта. Можно выполнить команду:
ls -la
В списке должны быть видны файлы проекта: например, index.php, index.html, папки CMS, файлы шаблона или другие элементы вашего сайта.
После загрузки проекта откройте домен в браузере. Если домен привязан к хостингу, DNS обновились, файлы находятся в правильной директории, а проект не требует дополнительных настроек, сайт должен отобразиться.
Если проект использует базу данных, переменные окружения, Composer, сборку фронтенда или другие зависимости, потребуется выполнить дополнительные действия согласно требованиям конкретного проекта.
После первой публикации проекта не нужно каждый раз заново клонировать репозиторий. Дальше сайт можно обновлять командой git pull.
На компьютере разработчика отредактируйте файлы, проверьте сайт в локальной среде, добавьте изменения и создайте коммит.
git add .
git commit -m "any comment"
Передайте новую версию проекта в GitHub или другой сервис:
git push origin master
Если основная ветка называется main, используйте:
git push origin main
Откройте SSH-соединение с хостингом и перейдите в корневую папку сайта, где уже находится репозиторий.
Если проект использует ветку main, выполните:
git checkout main
Если используется master, укажите это имя ветки.
Выполните команду:
git pull
Команда git pull получает изменения из удаленного репозитория и объединяет их с локальной копией на сервере. Фактически она выполняет получение данных и слияние изменений.
После завершения команды откройте сайт в браузере и проверьте, что обновления применились корректно.
Если для проекта требуется более новая версия Git, на хостинге REG.RU можно использовать алиас:
git2192
Например, вместо стандартной команды:
git pull
можно использовать:
git2192 pull
То же правило применяется к другим командам Git. Например:
git2192 clone https://github.com/mrradu/regru-hosting.git .
Использовать git2192 стоит в тех случаях, когда стандартная версия Git 1.7.1 не подходит для вашего рабочего процесса или вызывает ошибки совместимости.
Для приватных репозиториев и более удобной авторизации часто используют SSH-ключи. Они позволяют подключаться к удаленному репозиторию без постоянного ввода логина и пароля.
Подключитесь к хостингу по SSH и перейдите в каталог, где хранятся SSH-ключи:
cd ~/.ssh
Проверьте содержимое каталога:
ls
Если в списке есть файлы id_rsa и id_rsa.pub, значит пара ключей уже создана. id_rsa — приватный ключ, его нельзя публиковать и передавать третьим лицам. id_rsa.pub — открытый ключ, его можно добавить в сервис хранения репозитория.
Чтобы вывести открытый ключ в терминал, выполните:
cat id_rsa.pub
Скопируйте вывод полностью и добавьте его в настройки SSH-ключей GitHub, GitLab или другого сервиса.
Если при переходе в каталог или просмотре файлов вы видите ошибку No such file or directory, ключи нужно создать. Запустите команду:
ssh-keygen
Когда система спросит имя файла, укажите:
Enter file in which to save the key (~/.ssh/id_rsa): id_rsa
Затем будет предложено задать пароль:
Enter passphrase (empty for no passphrase):
Пароль можно оставить пустым, нажав Enter. После генерации перейдите в каталог ключей:
cd ~/.ssh/
И выведите открытый ключ:
cat id_rsa.pub
После добавления открытого ключа в удаленный сервис можно использовать SSH-ссылку репозитория, если это предусмотрено вашим сценарием работы.
Перед отправкой проекта в удаленный репозиторий важно исключить файлы, которые не должны храниться в Git. Это помогает не засорять репозиторий и снижает риск утечки данных.
Обычно в .gitignore добавляют:
Для WordPress, Laravel, Symfony, React, Vue, Node.js и других проектов правила .gitignore могут отличаться. Лучше подготовить их до первого коммита, чтобы лишние файлы не попали в историю репозитория.
Если выполнить git clone без точки в конце, Git создаст отдельную папку репозитория внутри текущего каталога. В результате стартовый файл сайта может оказаться не в корне домена, а во вложенной директории.
Для загрузки файлов прямо в текущую папку используется команда с точкой:
git clone https://github.com/mrradu/regru-hosting.git .
Перед клонированием или git pull обязательно проверьте текущую директорию. Если обновить не тот каталог, сайт в браузере не изменится, хотя команда выполнится успешно.
В старых проектах основная ветка часто называется master, в новых — main. Если выполнить команду для несуществующей ветки, Git вернет ошибку. Проверьте имя ветки в удаленном репозитории и используйте его в командах.
Если файлы на хостинге менялись вручную через файловый менеджер, FTP или SSH, команда git pull может столкнуться с конфликтом. Git не всегда сможет автоматически объединить изменения.
Лучше придерживаться одного процесса: правки делать локально, отправлять их в репозиторий, а на хостинге только подтягивать готовую версию.
Если не настроить .gitignore, в Git могут попасть кеш, временные файлы, архивы, логи, дампы базы данных или локальные конфигурации. Это усложняет поддержку проекта и может быть небезопасно.
Если репозиторий закрытый, сервер должен иметь право его читать. Для этого используют логин и пароль, токен доступа или SSH-ключ. Без корректной авторизации git clone и git pull завершатся ошибкой.
Перед выполнением git pull полезно посмотреть состояние репозитория:
git status
Если Git показывает незакоммиченные изменения на сервере, сначала разберитесь, откуда они появились.
Если сайт обновляется через Git, изменения лучше вносить локально и публиковать через репозиторий. Ручные правки на хостинге повышают риск конфликтов.
Git подходит для кода и файлов проекта, но не заменяет резервное копирование базы данных. Если сайт использует CMS, базу нужно сохранять отдельным дампом или через инструменты резервного копирования.
Даже если Git позволяет откатывать код, перед серьезными изменениями на рабочем сайте полезно создать копию файлов и базы данных. Это особенно важно для интернет-магазинов и проектов с активными пользователями.
Для безопасной работы удобно вести разработку в отдельной ветке, тестировать изменения, а затем объединять их с основной веткой, которая разворачивается на хостинге.
Git удобен для проектов, которые регулярно обновляются и имеют историю разработки. Он лучше подходит разработчикам, командам и сайтам, где важно контролировать изменения.
FTP и SFTP проще для разовой загрузки готового сайта, замены изображений или передачи нескольких файлов. Файловый менеджер панели управления удобен для быстрых правок через браузер.
Оптимальный вариант зависит от задачи. Если вы один раз размещаете простой HTML-сайт, можно использовать файловый менеджер или SFTP. Если проект постоянно дорабатывается, Git дает больше контроля и снижает риск хаотичных изменений.
Работа с Git на хостинге REG.RU позволяет удобнее загружать и обновлять проект на сервере. Сначала разработчик готовит локальный репозиторий, отправляет изменения в GitHub, GitLab или другое удаленное хранилище, а затем через SSH клонирует проект в корневую папку сайта или обновляет его командой git pull.
На хостинге REG.RU по умолчанию установлен Git версии 1.7.1, а для запуска версии 2.19.2 используется алиас git2192. Для публикации проекта важно правильно определить корневой каталог домена, не забывать точку в конце команды git clone и следить за тем, чтобы в репозиторий не попадали конфиденциальные и временные файлы.
Git особенно полезен для сайтов, которые регулярно развиваются: он помогает вести историю изменений, обновлять проект аккуратнее, работать с ветками и быстрее переносить новую версию сайта на хостинг.