yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Что такое Git: как создать локальный репозиторий и что делает git init

Git — система контроля версий, которая позволяет фиксировать изменения кода, экспериментировать с ним без риска и эффективно работать в команде. Изучение Git — обязательный навык для любого разработчика, сравнимый с умением писать чистый код. Он обеспечивает надежное хранение истории проекта и становится фундаментом для профессионального роста в IT.

Обзоры
Иллюстрация для статьи на тему «Что такое Git: как создать локальный репозиторий и что делает git init»
Продукты из этой статьи:
Иконка-Evolution Managed Kubernetes
Evolution Managed Kubernetes

В Git работают не только с кодом, но и с технической документацией, статьями, базами знаний, мануалами и инструкциями. Мы будем рассматривать Git при работе именно с кодом.

В статье расскажем, что такое Git, где и когда он применяется, как устроена работа с разными версиями, какие инструменты и команды использовать для работы.

Основные концепции Git

В этом разделе рассмотрим, как именно работает Git, какие элементы в нем есть, а также на чем базируется децентрализованных подход к изменениям.

Принципы работы с Git

Git — это распределенная система контроля версий, которая помогает отслеживать изменения в коде.

Чтобы понять, насколько Git удобная вещь, предлагаем представить стандартный текстовый файл. Вы там что-то пишете, код или обычный текст — не так важно. Вы закончили работу и хотите поделиться файлом с Петей, чтобы он взял в работу другой фрагмент. Для этого вы сохраняете файл, даете ему название, скидываете Пете. Тот что-то делает, пересылает вам обратно уже для того, чтобы с изменениями ознакомились вы. Вы вносите корректировки и отправляете файл кому-то еще.

Предположим, текстовый файл пересылается между несколькими разработчиками, каждый из которых вносит свои изменения. В документе множатся комментарии, становится непонятно, кто какие изменения внес. В конце все понимают, что надо откатиться к версии, которую еще на второй итерации выдал Петя. С этих пор документ прошел пятнадцать итераций исправлений, Петя уже не помнит, как называется файл с нужной версией, и судорожно ищет его в ворохе документов.

Git решает эту проблему. Неважно, в какой IDE вы работаете — каждый разработчик может спокойно работать со своим кодом, смотреть версии коллег. По необходимости объединять их, именовать, возвращаться к предыдущим версиям без отката изменений в версии, над которой идет работа сейчас. Все версии объединены в удобные группы и отображены последовательно, что позволяет отслеживать историю изменений.

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим
Система контроля версий сохраняет записи обо всех изменениях в файлахСистема контроля версий сохраняет записи обо всех изменениях в файлах

Теперь посмотрим, какие компоненты и процессы есть в Git и как они обеспечивают контроль над версиями.

Репозиторий (repository) — хранилище вашего проекта, в котором сохранена история всех изменений. У каждого разработчика, который работает над конкретным проектом, есть полная копия его репозитория, она размещена локально у каждого на устройстве. Еще есть публичный репозиторий. Он доступен всем разработчикам, служит для обмена версиями и расположен на сервере, например GitHub или GitLab.

Коммит (commit) — это фиксация изменений в репозитории. По сути, это снимок состояния файлов в определенный момент, который сохраняется в истории.

В каждом коммите есть:

  • Уникальный хеш-идентификатор, например, a1b2c3d...

  • Описание изменений, каждый разработчик пишет его самостоятельно. Так другие в команде поймут, чем конкретная версия отличается от других.

  • Автор и временная метка. Иначе говоря, информация о том, кто и когда внес изменения.

  • Ссылка на родительский коммит. Так выстраивается история версий, можно отследить, какое изменение за каким следовало.

Чтобы понять, как создаются коммиты, важно знать о трех состояниях файлов в Git:

  1. Рабочая директория (working directory) — текущее состояние файлов в папке проекта. Именно тут вы вносите все изменения.

  2. Индекс (staging area) — промежуточная область, куда командой git add добавляете файлы, чтобы включить их в следующий коммит.

  3. Репозиторий (repository) — окончательное хранилище. Когда вы создаете коммит (git commit), то навсегда сохраняете содержимое индекса.

Ветви (branches) — независимая линия разработки, которая отделяется от основной. По умолчанию основная ветка называется main, ранее был вариант master. Грубо говоря, ветка — указатель на конкретные коммиты. В ветках идет работа над дополнительными функциями проекта или другими версиями, при этом основная линия разработки на ветке main остается нетронутой.

HEAD — указатель, который показывает, на какой ветке или коммите вы находитесь.

Слияние (merge) — объединение изменений из разных веток. Например, когда функция готова, ее ветку сливают с main, чтобы добавить новую фичу в основной проект.

Ветвистая структура репозитория. Коммиты в главной ветке main удобно помечать номером версии, чтобы не запутатьсяВетвистая структура репозитория. Коммиты в главной ветке main удобно помечать номером версии, чтобы не запутаться. Develop — ветка разработки, в которой разрабатывают новый функционал.
Feature — также ветки для разработки новых функций. Они ответвляются от Develop, а готовые ветки Feature с Develop, наоборот, сливаются. Feature — также ветки для разработки новых функций. Они ответвляются от Develop, а готовые ветки Feature с Develop, наоборот, сливаются.

Децентрализованный подход к хранению данных

В отличие от централизованных систем (как SVN), где единый сервер с историей, Git работает по распределенной, или децентрализованной модели хранения данных. Это значит, что нет какого-то единого сервера с историей, нет единой точки отказа. Если у одного из разработчиков сгорел диск, работу остальных это не затронет.

В чем еще преимущества децентрализованного подхода:

  • На устройстве каждого разработчика локально хранится «боевой» репозиторий, а не его копия. Чтобы добавить новые коммиты, не нужен интернет — достаточно, что репозиторий уже находится на устройстве.

  • Операции проводятся мгновенно, так как репозиторий сохранен локально, а не где-то на сервере. Например, вы можете быстро посмотреть логи, сравнить разные версии или создать новую ветку, даже если есть перебои с сетью.

Если один из серверов упадет, для продолжения работы и восстановления данных можно скопировать репозиторий из любого другого устройстваЕсли один из серверов упадет, для продолжения работы и восстановления данных можно скопировать репозиторий из любого другого устройства. Копия репозитория на каждом устройстве — полный бэкап всех данных.

Как это работает на практике

Разработчики кодят в своих локальных репозиториях, потом синхронизируют изменения через удаленные репозитории: на GitHub или GitLab. Тот репозиторий, который хранится на GitHub или GitLab, это не основная версия, а просто точка синхронизации, там все обмениваются результатами своей работы. Но у каждого на устройстве есть одинаково равнозначные репозитории. Это создает гибкий воркфлоу, где можно экспериментировать без риска повредить общий код.

Git в современных DevOps-практиках и контейнерных окружениях

В современной разработке Git тесно интегрирован с автоматизированными процессами CI/CD (Continuous Integration/Continuous Deployment). Коммиты в Git-репозиторий могут автоматически запускать сборку приложений, тестирование и развертывание в продакшен. Особенно актуально это для контейнерных приложений, где каждое изменение кода автоматически упаковывается в Docker-образ и разворачивается в кластерах Kubernetes.

Для управления контейнерными приложениями на основе Git-репозиториев используются специализированные облачные решения. Например, Evolution Managed Kubernetes позволяет за минуты создавать кластеры для автоматического развертывания контейнеров, настраивать CI/CD-пайплайны с интеграцией Git-хостингов и управлять всей инфраструктурой через API или kubectl. Такой подход обеспечивает полную автоматизацию: от коммита разработчика до запуска обновленного приложения в кластере.

Evolution Managed Kubernetes
Evolution Managed Kubernetes
Управляйте контейнерными приложениями в кластере Kubernetes.
Узнать больше

Установка Git

Дадим пошаговые инструкции, как установить Git на операционные системы Linux, macOS и Windows.

Установка на Linux

Для Linux приводим команды, которые нужны для установки Git из официальных репозиториев. Установку будем рассматривать на примере дистрибутивов на базе Debian/Ubuntu и RHEL/CentOS.

Для дистрибутивов на основе Debian/Ubuntu:

Для дистрибутивов на основе RHEL/CentOS/Fedora:

Проверить установку:

Установка на MacOS

Здесь расскажем, как установить Git на устройство с MacOS. Рассмотрим три способа: через менеджер пакетов Homebrew, инструменты Xcode Command Line Tools или официальный сайт с бинарным установщиком.

1. Выполните команду в Homebrew (рекомендуемый способ установки):

2. Выполните в Xcode Command Line Tools:

3. Скачайте установщик для MacOS с официального сайта Git из раздела Downloads.

На портале Git вы можете выбрать, для какой ОС скачать установщик, загрузить более старые версии и узнать, какая версия последняя на данных моментНа портале Git вы можете выбрать, для какой ОС скачать установщик, загрузить более старые версии и узнать, какая версия последняя на данных момент. Источник: git-scm.com

Чтобы проверить установку, выполните:

Установка на Windows

Опишем установку с использованием Git for Windows — официального установщика, который включает Git Bash и инструменты командной строки.

  1. Скачайте установщик с портала Git.

  2. Запустите установщик и следуйте инструкциям.

  3. Выберите нужные компоненты. Советуем все оставить по умолчанию.

  4. Настройте переменные PATH — выберите «Git from the command line and also from 3rd-party software».

  5. Завершите установку.

Чтобы проверить, все ли скачалось, введите команду:

Быстрая настройка Git

Первичная конфигурация

Для всех операционных систем первые настройки одинаковые. Нужно указать ваше имя и задать адрес электронной почты:

Исправление настроек по умолчанию

После того, как вы задали имя пользователя и почту, полезно поменять некоторые базовые настройки. Так работа с Git станет удобнее, особенно если ведете совместную работу над проектами. Рассказываем о некоторых командах, которые помогут в работе.

1. Настройка ветки по умолчанию:

В современных версиях Git, начиная с 2.28, ветка по умолчанию уже создается с именем main. Но явная настройка — это best practice, которая обеспечивает предсказуемость и совместимость во всех окружениях. К примеру, платформы вроде GitHub и GitLab по умолчанию создают репозитории с веткой main.

Если вы настроите ветку по умолчанию, это станет гарантией, что ваша среда сразу синхронизируется с удаленной, и не нужно будет ничего переименовывать.

2. Автоматическое переключение между ветками:

3. Настройка поведения push:

4. Кеширование:

5. Изменение цветового оформления Git для удобства:

6. Настройка редактора по умолчанию:

7. Просмотр всех настроек:

Создание локального репозитория

Локальный репозиторий — это полная копия вашего проекта со всей историей изменений, которая хранится на вашем компьютере. Все операции в Git выполняются локально, и только после этого изменения подгружаются на общий удаленный сервер.

Тут расскажем, как создать у себя локальный репозиторий с помощью git init в новом и уже существующем проекте.

Использование команды git init

Команда git init создает новый репозиторий Git в текущей директории. Что происходит при выполнении:

  • Создается скрытая папка .git в корне проекта.

  • В папке размещаются все служебные файлы Git: объекты, конфигурация, история.

  • Директория превращается в репозиторий, который готов отслеживать изменения.

Создание репозитория в новом и существующем проекте

Чтобы создать репозиторий в новом проекте, выполните в терминале:

Для создания репозитория в уже существующем проекте алгоритм будет несколько другим:

Далее нужно проверить результат:

Основы работы в репозитории

Перейдем к основам работы в репозитории. В этом разделе рассмотрим, как сохранять изменения с помощью git add и git commit, а также кратко обсудим графические инструменты (GUI) для работы с Git.

Индексация и фиксация изменений

В Git, чтобы сохранить внесенные изменения, нужно выполнить два шага: индексацию и фиксацию.

Индексация (git add)

Перед тем как зафиксировать изменения, нужно добавить файлы в область подготовленных файлов (staging area). Это позволяет контролировать, какие изменения попадут в следующий коммит.

Фиксация (git commit)

После индексации изменения фиксируются в репозитории с помощью коммита. Каждый коммит имеет уникальный идентификатор и сообщение, которое описывает внесенные изменения.

Кратко описываем алгоритм работы с изменениями:

  1. Вносите изменения в файлы.

  2. Через git add подготавливаете файлы к коммиту.

  3. Через git commit фиксируете изменения в истории.

  4. И дальше повторяете этот цикл.

Визуальные инструменты для работы с Git

Многие работают с Git через терминал. Но чтобы визуализировать историю изменений и упростить себе работу над операциями, можно использовать графические клиенты (GUI). Расскажем о некоторых популярных вариантах.

Sourcetree

Бесплатное решение, которое работает на устройствах с Windows и macOS. Доступна визуализация истории веток, интеграция с Bitbucket и Jira, поддержка Git-flow «из коробки». Хороший выбор, если ищете полнофункциональный бесплатный инструмент и используете другие продукты Atlassian, например, Jira.

Интерфейс SourcetreeИнтерфейс Sourcetree

GitKraken Desktop

Есть мощный граф коммитов, встроенные инструменты для слияния. В интерфейсе  фокус на командной работе, доступна интеграция с популярными хостингами. Подойдет тем, кто работает в команде и ценит детальную визуализацию истории проекта, особенно при работе со сложными ветвлениями. Работает на Windows, macOS и Linux.

GitHub Desktop

У GUI минималистичный интерфейс, есть интеграция с GitHub, для основных рабочих операций процесс выстроен интуитивно понятно. Подходит для новичков или тех, кто в работает с GitHub, хочет понятный интерфейс для повседневных задач. Функционал бесплатный, работает на Windows и macOS.

При этом все современные IDE работают с Git из коробки. Если вы работаете, например, в VS Code, IntellyJ, NetBeans, PyCharm или Eclipse, GUI вам может и не понадобиться.

Заключение

С Git можно создавать репозитории, индексировать изменения, формировать коммиты и работать с ветками. Локальная работа в Git дает контроль над историей проекта, позволяет экспериментировать без риска для общей кодовой базы.

Закончим подборкой советов для дальнейшего изучения Git:

  1. Освойте интерактивный режим. Используйте git add -p для выборочной индексации изменений и git rebase -i, чтобы редактировать историю коммитов.

  2. Изучите отладку, например: команды git bisect для поиска проблемных коммитов и git blame для отслеживания авторов изменений.

  3. Попрактикуйтесь с ветвлением. Отработайте стратегии Git Flow и GitHub Flow на своих пет-проектах.

  4. Обратитесь к Pro Git Book — это бесплатное пособие по Git на русском языке. В меню слева вы сможете выбрать другой язык: английский, французский, китайский или любой другой из доступных. Из книги вы узнаете, например, про работу с протоколами, что такое Git-демон, изучите более глубокие и точечные настройки.

Продукты из этой статьи:
Иконка-Evolution Managed Kubernetes
Evolution Managed Kubernetes
30 октября 2025

Вам может понравиться