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 — одна из самых известных и функциональных систем управления версиями. Она в основном используется в разработке программного обеспечения для отслеживания изменений в коде и координации совместной работы команд. Эта статья поможет новичкам понять основы Git, освоить ключевые команды и научиться правильно управлять репозиториями.

Инструкции
Иллюстрация для статьи на тему «Основы Git: инструкция и обучение для чайников»
Продукты из этой статьи:
Иконка-Advanced CodeArts
Advanced CodeArts

Что такое система Git и зачем она нужна

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

Git — распределенная система. Это значит, что каждый разработчик может иметь репозиторий с полной копией проекта и историей изменений. Участники создают свои версии и затем объединяют их с общей. Таким образом получается быстрее и эффективнее работать над проектом. 

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

Есть минимум восемь причин использовать Git:

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

  • Совместная работа. Несколько человек могут независимо работать над одним проектом, не мешая друг другу.

  • Безопасность проекта. История версий хранится не только на сервере, но локально. Это гарантирует, что данные не пропадут в случае сбоя. 

  • Удобное тестирование идей. Можно создать свою ветку, попробовать новую идею и при необходимости удалить изменения без вреда для основного кода.

  • Простое восстановление. Если что-то в локальной версии пошло не так, можно быстро вернуться к рабочему состоянию проекта.

  • Синхронизация между компьютерами. Можно работать офлайн на своем устройстве, затем синхронизировать изменения с общей версией на сервере.

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

  • Интеграция с другими инструментами разработки. Git поддерживается всеми популярными системами CI/CD, платформами для командной работы и средами IDE. 

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

Схема работы с GitСхема работы с Git

Установка Git

Для каждой ОС есть свой алгоритм установки системы. Рассмотрим порядок действий для основных.  

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

Для установки Git в операционной системе Windows используется официальный установщик Git для Windows, который уже включает Git Bash и другие необходимые утилиты.

Как действовать: 

  • Загрузите исполняемый файл (.exe) с официального сайта.

  • Запустите на компьютере загруженный файл и примите лицензионное соглашение.

  • Оставьте предложенные компоненты по умолчанию (включая Git Bash Here и Git GUI Here), если нет причин их менять.

  • На этапе настройки среды командной строки выберите «Git from the command line and also from 3rd-party software». Это позволит использовать команды git как в Git Bash, так и в стандартных терминалах Windows (CMD или PowerShell).

  • Выберите подходящий способ преобразования окончаний строк, чтобы обеспечить совместимость между разными ОС. 

  • Выберите терминал, например, MinTTY. Он рекомендуется для Git Bash по умолчанию. 

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

Git на macOS может быть уже установлен как часть Xcode Command Line Tools. Чтобы это проверить, выполните команду:

Если Git не найден, macOS предложит установить пакет для разработчиков — Xcode Command Line Tools. Git на macOS можно загрузить через через менеджер пакетов Homebrew.

Команда:

Установка в Linux

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

Команда для Ubuntu:

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

Здесь для установки используется пакетный менеджер DNF. 

Настройка Git

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

Начальная конфигурация

Перед началом использования Git настройте имя пользователя и адрес электронной почты, которые будут привязаны к вашим коммитам. Это нужно сделать правильно, поскольку данные не получится изменить после выполнения коммитов.

Введите в терминале следующие команды:

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

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

Git использует текстовый редактор для написания сообщений к коммитам и слияниям, редактирования описаний. Можно выбрать любой совместимый с системой инструмент. По умолчанию Git использует редактор Vim. 

Команда для установки редактора:

Примеры редакторов, которые можно установить:

  • Vim — мощный, достаточно сложный для новичков редактор, который часто используется по умолчанию в Unix-подобных системах, включая Git Bash. 

  • Nano — простой, понятный и минималистичный редактор командной строки. 

  • VSCode — графический редактор от Microsoft.  Он немного весит, легко устанавливается, быстро работает, обладает большим количеством расширений для Git. 

  • Sublime Text — легковесный, быстрый редактор с поддержкой расширений для работы с Git.

Редактор
Описание
Преимущества
Недостатки
Vim
Мощный текстовый редактор с богатым функционалом и возможностью кастомизации
Много плагинов и инструментов
Сложный в освоении, не подойдет для новичков
Nano
Простой редактор, который обычно используется в терминале
Легкий в использовании, подходит для новичков
Меньше функций по сравнению с другими редакторами
VSCode
Современный редактор с множеством расширений для поддержки Git и других инструментов разработки
Расширяемость, поддержка Git и интуитивно понятный интерфейс
Может быть «тяжелым» для слабых машин, потребляет много ресурсов
Sublime Text
Легковесный и быстрый текстовый редактор с возможностью установки плагинов
Высокая производительность, поддержка Git
Предлагает бесплатную оценочную версию без ограничений по времени, но легальное продолжение использования требует покупки лицензии.

Пример команды, если вы выбрали VSCode: 

Параметр --wait заставляет редактор подождать, пока вы закроете текущее окно. Только после этого операция Git может быть продолжена. 

Базовые команды Git

Эти команды должны знать все пользователи Git. Они помогут создавать новые репозитории и отслеживать изменения в существующих. 

Создание нового репозитория

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

Откройте Git Bash и перейдите в корневой каталог вашего проекта с помощью команды cd (например, cd/c/Projects/MyProject). Дальше выполните git init.

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

Работа с существующими репозиториями

Если ваш проект разрабатывается на GitHub или GitLab, использовать git init не нужно. Для загрузки копии удаленного репозитория на локальный компьютер применяется команда git clone. Как это выглядит:

Git создает новую папку с именем существующего репозитория, скачивает туда все файлы и историю версий. 

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

Можно пойти более сложным путем и выполнить две команды: git fetch для загрузки изменений и git merge для их слияния с вашей версией. 

Определение состояния и фиксация изменений

Команда git status — основной инструмент для отслеживания состояния рабочего каталога. Команда покажет, на какой ветке вы находитесь, какие файлы менялись и какие готовы к коммиту. 

Прежде чем менять конкретный файл, его нужно подготовить с помощью git add. Это выглядит так:

Чтобы сохранить изменения в историю репозитория, воспользуйтесь командой commit. Затем нужно снова проверить состояние с помощью git status. Команда позволит увидеть, что именно изменилось.

Управление удаленными репозиториями

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

Подключение удаленного репозитория и отправка изменений

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

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

Если вы начали проект локально с помощью git init и только что создали репозиторий на хостинге, нужно подключить его:

Например, это может выглядеть так:

Отправка изменений

Команда git push передает ваши локальные коммиты на указанный удаленный сервер:

Например, команда для отправки изменений с локальной ветки main на сервер origin выглядит так:

При первом использовании для новой ветки можно применить флаг -u. Например, git push -u origin main. Так вы установите связь между своей веткой и удаленной. В будущем для отправки изменений можно использовать просто git push

Загрузка изменений из удаленного репозитория в локальный 

Для загрузки обновлений из удаленного репозитория в локальный используются две команды — git fetch и git pull

Начнем с git fetch. Она загружает все новые коммиты, теги и ветки из удаленного репозитория и сохраняет их в вашем. Изменения не затрагивают вашу текущую рабочую ветку и локальные файлы. Команда подойдет, если вы хотите посмотреть изменения в удаленном репозитории, но пока не готовы интегрировать их в свою версию. 

Пример: git fetch origin. Вы увидите, что изменилось в ветке origin. 


Команда git pull полезна для быстрой синхронизации изменений. Новые данные загружаются из удаленного репозитория и автоматические сливаются с вашей веткой. Перед выполнением команды убедитесь, что локальная версия готова к принятию изменений. 

Пример: git pull origin main загружает изменения из удаленной ветки (origin/main) и сливает их в текущую локальную ветку.

Ветвление и слияние

Работа с ветками (branching) — это фундаментальный принцип Git, который позволяет разработчикам работать над функциями независимо друг от друга.

Создание и переключение между ветками

Ветка в Git — это указатель на определенный коммит в истории изменений. Основная ветка по умолчанию называется master или main.

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

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

Текущая ветка будет отмечена значком *.

Переключение между ветками

Чтобы начать работу в новой ветке, нужно переместить на нее указатель HEAD. 

HEAD — это указатель, который ссылается на текущую ветку. Когда вы переключаетесь на новую ветку, HEAD обновляется, чтобы указывать на эту ветку.

Переключиться на уже существующую ветку помогут команды:

Если нужно создать новую ветку и сразу на нее переключиться, примените: 

После переключения на другую ветку файлы в вашей локальной директории обновятся. 

Слияние веток 

Слияние — процесс автоматического объединения изменений в локальной ветке с изменениями в целевой ветке. Выполняется с помощью команды git merge

Представим, что вам нужно объединить изменения в вашей ветке origin с изменениями в main. Как действовать:

  1. Переключитесь на целевую ветку: git checkout main.

  2. Получите последние изменения: git pull origin main.

  3. Выполните слияние, указав имя ветки, из которой нужно взять изменения:

Если целевая ветка main не менялась с тех пор, как вы создали свою ветку, Git просто передвинет указатель main на последний коммит вашей ветки origin. Коммит слияния в таком случае не создается. При этом заставить Git создать merge commit можно с флагом --no-ff

Если в обеих ветках были новые коммиты, Git создаст новый коммит слияния — merge commit. Он объединит актуальные изменения из двух веток. 

Ветки в GitВетки в Git

Разрешение конфликтов

Иногда при работе с Git бывают конфликты слияния — merge conflict. Они возникают, когда Git не может автоматически слить изменения. Например, если два разработчика представили один и тот же участок кода по-разному. Система не может это объединить, поскольку тогда в коде возникнет ошибка. 

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

Чтобы проверить, какие файлы конфликтуют, выполните команду git status. Дальше откройте конфликтующий файл в текстовом редакторе и посмотрите маркеры конфликта. Они показывают, откуда пришли разные версии. Это может выглядеть примерно так:

Вручную отредактируйте файл, удалите все маркеры (<<<<<<<, =======, >>>>>>>), исправьте или объедините нужные части кода.

После исправлений сообщите Git, что конфликт разрешен:

Завершите слияние:

Если не хотите разрешать конфликт, можно отменить слияние: git merge --abort

Полезные советы и трюки

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

Отмена и исправление изменений

Есть два способа отменить изменения — переписывание истории git reset и безопасная отмена git revert

Git reset

Команда git reset как бы переписывает историю. Она используется, если нужно отменить изменения в вашей локальной ветке. Команда «отматывает» проект к предыдущему состоянию, как будто последних коммитов не было. Это удобно, если ошибка была обнаружена сразу, и коммиты еще не отправлены в общий репозиторий.

Команда git reset применяется, когда нужно удалить один или несколько последних коммитов, хочется переделать конкретный коммит или объединить коммиты в один. Опция используется только для локальной работы. Ее нельзя применять, если изменения уже отправлены на общий сервер. В таком случае из-за переписанной истории у других участников проекта могут возникнуть конфликты версий. 

Git revert

Команда git revert не стирает старую историю, а создает новый коммит, который отменяет изменения предыдущего. Таким образом, история сохраняется полностью, и проект остается целостным.

Опция полезна, когда нужно отменить конкретное изменение, не нарушая историю проекта либо изменить коммит, который уже отправлен в общий репозиторий. Например, вы случайно добавили неправильный код. Команда git revert создаст новый коммит, который отменит изменения. При этом все предыдущие коммиты будут видны.

Облачные ресурсы в Evolution free tier бесплатно и навсегда
Облачные ресурсы в Evolution free tier бесплатно и навсегда
Виртуальная машина, хранилище данных и 4 000 бонусных рублей при регистрации
Подробнее

Работа с файлом .gitignore

Файл .gitignore позволяет указать, какие файлы и папки не будут отслеживаться. Он помогает поддерживать чистоту репозитория. 

Создайте файл с именем .gitignore в корневой папке вашего репозитория. Пропишите строки-шаблоны для исключения папок и файлов. Примеры шаблонов — в таблице.

Шаблон
Назначение
Примеры
имя_файла.txt
Исключить конкретный файл в любой директории
my_password.txt
/папка/
Исключить папку, которая находится в корне репозитория
/node_modules/
*.log
Исключить все файлы с указанным расширением
*.log, *.bak
папка/
Исключить указанную папку в любой вложенной директории
bin/, temp/
!файл.txt
Отменить исключение для конкретного файла, даже если он совпадает с шаблоном выше
!index.js (если исключен весь *.js)

Что можно включить в .gitignore: 

  • файлы, которые генерируются автоматически, например, скомпилированный код, .class, .dll;

  • специфические настройки среды разработки, например, папки .vscode, .idea;

  • файлы с конфиденциальной информацией — ключи API, данные для доступа к базам;

  • временные файлы и кэши в таких папках, как node_modules, logs.

Если хотите исключить файл, который уже закоммичен в репозиторий, сначала его удалите его из индекса с помощью команды:

После этого добавьте файл в .gitignore и создайте новый коммит.

Пример .gitignoreПример .gitignore

Подсказка для новичков — все основные команды

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

Команда
Описание
Пример использования
git init
Создает новый репозиторий Git
git init
git clone
Клонирует удаленный репозиторий на локальный компьютер
git clone https://github.com/example/repo.git
git status
Показывает текущее состояние репозитория (неиндексированные изменения, файлы для коммита)
git status
git add
Добавляет файл в индекс, то есть готовит к коммиту
git add index.html
git commit -m ""
Создает новый коммит с добавленными изменениями
git commit -m "Добавлены изменения в index.html"
git log
Показывает историю коммитов репозитория
git log
git diff
Показывает изменения между рабочей директорией и индексом или между коммитами
git diff
git pull
Получает изменения из удаленного репозитория и автоматически сливает их в текущую ветку
git pull origin main
git push
Отправляет локальные изменения в удаленный репозиторий
git push origin main
git branch
Показывает список всех веток в репозитории
git branch
git branch
Создает новую ветку с указанным именем
git branch feature/new-feature
git checkout
Переключает на нужную ветку
git checkout feature/new-feature
git checkout -b
Создает новую ветку и сразу переключается на нее
git checkout -b feature/new-feature
git merge
Сливает указанную ветку в текущую
git merge feature/new-feature
git fetch
Получает обновления из удаленного репозитория, но не сливает их автоматически
git fetch origin
git remote -v
Показывает список удаленных репозиториев, привязанных к текущему локальному репозиторию
git remote -v
git remote add
Добавляет новый удаленный репозиторий
git remote add origin https://github.com/example/repo.git
git reset
Убирает файл из индекса, но сохраняет в рабочей директории
git reset index.html
git rm
Удаляет файл из рабочего каталога и индекса
git rm index.html
git show
Выдает информацию о конкретном коммите
git show a1b2c3d4
git tag
Создает новый тег с указанным именем
git tag v1.0
git tag -a -m ""
Создает тег с комментарием
git tag -a v1.0 -m "First release"
git tag
Показывает все теги в репозитории
git tag
git stash
Сохраняет изменения во временном хранилище и делает откат в рабочей директории до последнего коммита
git stash
git stash apply
Восстанавливает изменения из временного хранилища в текущую рабочую директорию
git stash apply
git stash pop
Восстанавливает изменения и удаляет их из временного хранилища
git stash pop
git config
Настроить параметры: имя пользователя, email и другие
git config --global user.name "John Doe"
git config --global user.email ""
Настраивает адрес электронной почты для всех репозиториев
git config --global user.email "email@example.com"
git config --list
Показывает все глобальные и локальные настройки Git
git config --list

Заключение

Знание команд для Git позволит ускорить работу — вы будете действовать 

«на автомате», не задумываясь, когда и какую опцию выбрать. На первых порах достаточно информации, которую мы дали в статье. 

Основы работы с репозиториями Git универсальны и работают с любым хостингом: будь то облачные платформы GitHub и GitLab или российские решения для командной разработки. Если вы ищете комплексное решение, которое объединяет управление версиями, CI/CD, тестирование и развертывание в одной платформе, обратите внимание на Advanced CodeArts от Cloud.ru — это многофункциональный сервис для полного цикла разработки IT-продуктов. Он позволяет командам разработчиков, QA и DevOps-инженеров работать в единой среде, ускоряя вывод продукта на рынок и упрощая процессы интеграции и развертывания.

Продукты из этой статьи:
Иконка-Advanced CodeArts
Advanced CodeArts
16 декабря 2025

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