Wiki · Технологии разработки
Git
Git – это система контроля версий: она хранит историю всех изменений в коде проекта и позволяет вернуть любую его прошлую версию. Каждая правка записывается с автором, датой и комментарием.
Обычная история: сайт три года вёл один фрилансер, потом пропал. Новому подрядчику достаётся архив с сервера, и никто не знает, какие файлы правили, зачем и что сломается, если их тронуть. Первые недели уходят на раскопки. Если бы код лежал в Git, у нового разработчика была бы вся история проекта с пояснениями.
Git создал Линус Торвальдс в 2005 году для разработки ядра Linux. Программа бесплатная, распространяется под открытой лицензией GPLv2, официальный сайт git-scm.com. Git распределённый: каждая копия репозитория на компьютере любого разработчика содержит всю историю проекта целиком.
Репозиторий, коммит, ветка и слияние
Чтобы понимать разговоры разработчиков, хватит четырёх слов.
- Репозиторий. Папка проекта вместе со всей историей изменений.
- Коммит. Сохранённый шаг: какие строки изменились, кто это сделал, когда и с каким комментарием.
- Ветка. Параллельная линия работы. Новую функцию делают в отдельной ветке, и рабочий сайт её не видит, пока задачу не проверят.
- Слияние (merge). Перенос готовой ветки в основную, из которой собирается рабочий сайт.
История проекта выглядит как журнал. Условный пример вывода команды git log:
a1f3c2e Исправлена отправка формы заказа 9b7d410 Блок отзывов на главной 3e52a8b Переход на PHP 8.2
Если после правки с блоком отзывов на сайте что-то сломалось, видно, кто вносил правку и что именно поменялось. Отменить её можно отдельной командой, не трогая остальные изменения. Работает это, пока коммиты небольшие и подписаны по делу: коммит «правки» на сотни файлов историю не объясняет и точечно не отменяется.

Git, GitHub и GitLab
Сам Git – программа, которая ведёт историю. GitHub, GitLab и похожие сервисы хранят репозитории в интернете и добавляют командную работу: доступы, обсуждение правок, задачи.
| Сервис | Что это | Когда выбирают |
|---|---|---|
| GitHub | Облачный сервис, принадлежит Microsoft | Открытые проекты, команды, которые уже там работают |
| GitLab | Облако или установка на свой сервер | Нужно держать код у себя, плюс сборка и выкладка в одном месте |
| GitFlic, GitVerse | Российские сервисы, GitVerse запустил СберТех | Важно хранить код в российской инфраструктуре |
Сервис можно сменить: код переносится вместе со всей историей коммитов, а задачи и обсуждения переезжают не всегда.
Зачем бизнесу, чтобы код сайта был в Git
- Передача проекта. Новый подрядчик получает историю и комментарии, а не безымянный архив.
- Откат. Неудачную правку отменяют за минуты, не восстанавливая весь сайт из копии.
- Прозрачность. Видно, что и когда сделано по каждой задаче, спорные вопросы с подрядчиком решаются по истории.
- Порядок выкладки. Правки сначала проверяют на тестовой копии, потом переносят на рабочий сайт.
- Git не заменяет резервное копирование. База данных и загруженные файлы в нём обычно не хранятся.
Git и 1С-Битрикс
У 1С-Битрикс ядро обновляется через систему обновлений платформы, поэтому его в Git обычно не кладут. С 14-й версии главного модуля платформа поддерживает папку /local: свои компоненты, шаблоны и модули проекта выносят туда, и в репозитории держат её, а папку /bitrix исключают. Правки прямо в ядре опасны: очередное обновление их затрёт.
Учтите и другое: тексты, товары и настройки, которые меняют через админку, хранятся в базе данных и в Git не попадают. В репозитории живёт код, а контент защищают резервные копии. Кеш, загруженные картинки и ядро любой CMS в репозиторий тоже не кладут: он разрастается, а пользы от такой истории нет.
Что забрать при смене подрядчика
Когда проект переходит к другой команде, одного архива мало. Попросите:
- ссылку на репозиторий и права владельца: доступа на чтение мало;
- пояснение, какая ветка соответствует рабочему сайту, а какая тестовому;
- описание, как код попадает на сервер: вручную, скриптом или автоматической выкладкой;
- пример файла настроек без паролей, чтобы новая команда знала, что заполнить.
Доступы к серверу, базе и сторонним сервисам передают отдельно и сразу меняют пароли. Особенно те, что когда-то попадали в код: из истории коммитов они не исчезают, даже если файл потом исправили.
Как проверить, что ваш сайт в Git
Попросите у подрядчика ссылку на репозиторий и доступ на чтение. Посмотрите дату последнего коммита. Если она полугодовой давности, а правки на сайте вносили на прошлой неделе, значит, файлы меняют прямо на сервере в обход Git, например по FTP. И проверьте с разработчиком, что служебная папка .git на сервере закрыта от доступа из браузера: открытая папка позволяет посторонним получить исходный код.

Если проект уже ведётся в Git, берём его на доработку и техническую поддержку. Новый сайт можно заказать в разделе Разработка сайтов.
Откат, ветки, пароли и сервисы для Git
Как откатить неудачную правку, не потеряв остальные?
Найти её коммит в истории и выполнить git revert с его номером: Git создаст новый коммит, который отменяет только эти изменения, и его выкладывают на сервер как обычную правку. Команду reset на общей ветке для этого не используют, она переписывает историю у всей команды. Если правка меняла базу данных, откат кода её не вернёт.
Чем Git отличается от GitHub и какой сервис выбрать?
Git ведёт историю, а GitHub и похожие площадки держат репозитории онлайн и добавляют к ним права, обсуждения и задачи. Выбор зависит от того, где должен лежать код: на своём сервере удобен GitLab, в российской инфраструктуре GitFlic или GitVerse. Ошибиться не смертельно: код уедет со всей историей, хотя задачи и обсуждения иногда остаются на старом месте.
Как создать ветку под задачу и посмотреть уже существующие?
Новую ветку создают и сразу переходят в неё командой git switch -c с именем задачи, то же делает и привычная git checkout -b. Список локальных веток покажет git branch, а с ключом -a к нему добавятся ветки с сервера.
Как удалить ветку, когда задача уже на рабочем сайте?
Локально командой git branch -d с именем ветки: Git откажется удалять, если её изменения ещё не слиты, и это полезная защита. Копию на сервере убирают через git push origin --delete и то же имя.
Что делать, если пароль от базы попал в репозиторий?
Первым делом сменить сам пароль: правка файла не спасает, старое значение лежит в истории и во всех копиях репозитория. Вычистить историю можно утилитой git filter-repo, но после этого все участники заново забирают репозиторий. Дальше пароли держат в файле настроек, исключённом через .gitignore.
Почему Windows пишет, что git не является внутренней или внешней командой?
Так система сообщает, что не нашла программу: Git не установлен или не прописан в переменной PATH. Поставьте Git for Windows с git-scm.com, оставив в установщике запуск из командной строки, и откройте терминал заново.
Как работать с Git без командной строки?
Через визуальные клиенты. В VS Code работа с Git встроена: изменённые файлы, коммиты и ветки видны на отдельной панели. Есть и самостоятельные программы вроде GitHub Desktop, а в Git for Windows входит простой Git GUI. Менеджеру проекта часто хватает веб-интерфейса GitHub или GitLab, где видно, кто и что менял.
Где почитать о Git, папке /local и GitVerse
- Git: официальный сайт, раздел About
- Pro Git: «Краткая история Git»
- 1С-Битрикс для разработчиков: «Поддержка папки /local/»
- СберТех: новость о запуске GitVerse
Остались вопросы по теме «Git»?
Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.
Отвечает по темеСергей ЧерняковWeb-разработчикНад статьёй работали
Услуги
Услуги по теме
Посчитайте стоимость проекта за 2 минуты
Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.
