
Как работать с ветками в Git: branch, checkout
Статья
Время чтения
6 минут
Чтобы повысить эффективность командной разработки за счет использования разных версий исходного кода, используется ветвление. Этот механизм поддерживается практически всеми системами контроля версий, среди которых одной из самых популярных является Git. А управлять репозиториями (хранилищами) программного кода удобно с помощью веб-приложения GitLab, о котором можно почитать в другой нашей статье.
О том, какие команды помогут закоммитить изменения, внести их в новую ветку, а потом изменить ее или удалить при необходимости, поговорим в этой статье. То есть расскажем про git branch и git checkout и про то, как они помогают тестировать новые функции без опасений, что это навредит рабочей версии кода.
Что такое ветка в Git
В Git ветка представляет собой указатель на конкретный коммит в истории изменений. Таких веток в одном репозитории может быть много, однако среди них всегда есть главная — master (main). Она появляется в момент создания репозитория, но по сути ничем не отличается от дополнительных веток, которые добавляются позже.

Важно знать, что каждая ветка в репозитории приложения ссылается на последний коммит в своей истории, его называют HEAD. Каждый раз, когда разработчик переключается с одной ветки на другую, Git автоматически обновляет этот указатель, чтобы дать понимание, в какой части проекта произошли изменения.
Что делает команда git branch
Основная команда для ветвления в проекте — git branch. Она позволяет:
открыть новую ветку с уникальным именем;
вывести перечень всех веток, которые входят в конкретный репозиторий Git;
изменить название ветки;
удалить неиспользуемые ветки.
Основные возможности git branch и git checkout
Чтобы добавить в репозиторий ветку, нужно ввести команду:
git branch <имя_ветки>
Команда создаст новую ветку, оставив разработчика в прежней. Кстати, для улучшения ориентировки в репозитории всем новым веткам рекомендуется давать такие названия, которые будут отражать суть внесенных с их помощью изменений.
Однако удобно не просто создавать ветки, но и сразу переключаться в них для дальнейшего взаимодействия с кодом. Поэтому чтобы не выполнять две команды по отдельности, можно ввести одну:
git checkout -b
Эта команда не только создаст новую ветку, но и переместит в нее разработчика для дальнейшей работы.
Как переключиться на действующую ветку
Для того чтобы переключить ветку или конкретный коммит в рабочее состояние, используйте команду git checkout. При ее вводе все файлы в рамках рабочего каталога обновляются. Затем отображается содержание коммита или ветки, выбранной разработчиком, а Git начинает воспринимать ее в качестве активной.
Дополнительно git checkout позволяет:
быстро переключаться с одной ветки на другую;
создать ветку и мгновенно на нее переключиться;
переключиться на конкретный коммит.

Также команду git checkout можно использовать, чтобы:
перейти на ветку с обновленным функционалом;
git checkout new-feature
создать новую ветку с аналогичным названием и моментально ее открыть;
git checkout -b new-feature
переключиться на определенный коммит;
git checkout commit hash
Вышеуказанная команда приведет к созданию состояния detached HEAD. При этом в дальнейшем будут потеряны все коммиты, сделанные в этом состоянии, если предварительно не сделать для них новую ветку и не сохранить их. Чтобы не потерять коммиты, используйте:
git checkout -b
Как управлять ветками
Организованная работа с ветками позволяет поддерживать порядок в репозитории. Для этого важно вовремя фиксировать изменения, отправлять их на удаленный сервер, переименовывать при необходимости и удалять ненужное.
Как фиксировать изменения
Если вам нужно исправить ошибку в коде, перед фиксацией изменений нужно обновить локальную ветку через последовательный ввод команд git fetch и git pull.
Затем, чтобы зафиксировать изменения в определенной ветке:
Сперва введите две команды: первая — git add, вторая — git commit -m. А после пробела перечислите внесенные изменения.
Затем примените команду git status, чтобы проверить состояние кода.
Как отправить ветку в удаленный репозиторий
Вы можете открыть локальную ветку для просмотра другими разработчиками. Например, если хотите поделиться кодом с комьюнити, получить помощь по проекту или предложить какую-либо идею. Для этого надо отправить ветвь в удаленный репозиторий с помощью команды:
git push -u origin <имя_ветки>
Эта команда откроет новую ветвь на удаленном сервере, после чего зафиксирует в ней все коммиты.
Как изменить имя ветки
Чтобы привести репозиторий в порядок и всегда понимать, что в нем происходит, стоит дать разные названия всем похожим веткам. Для этого нужно сперва выполнить команду git branch -m, а после пробела указать новое наименование.
А в том случае, если требуется изменить название ветки, не заходя в ее, используйте:
git branch -m <текущее_имя> <новое_имя>
Как удалить ветку
Для удаления ветки нужно ввести команду:
git branch -d <имя_ветки>
При этом имейте ввиду, что ввод git branch -d без закрепленных в ветке модификаций выдаст ошибку. Чтобы принудительно удалить такую ветвь, используйте ключ -D вместо -d.
Кстати, важно удалять не только локальные, но и отправленные на удаленный сервер неиспользуемые ветки. И тут пригодится команда:
git push origin --delete <название ветки>

Просмотр и сравнение веток
Еще в Git доступны дополнительные возможности работы с ветками. Например, можно:
посмотреть, в каком состоянии находятся файлы в конкретной ветке;
проанализировать историю изменений в ветке;
сравнить ветки перед тем, как смержить.
Эти возможности Git полезны в разработке, потому что позволяют оценивать объем и характер изменений в ветках прежде, чем приступать к их слиянию и релизу очередной версии кода.
Как проверить состояние файлов в ветке
Перед переключением между разными ветками важно проверить, что в действующей ветке зафиксированы все изменения. Для этого используйте команду git status — она продемонстрирует все файлы, где уже произошли изменения, но еще не было их фиксации.
История коммитов: как просмотреть и изучить
Для детального отслеживания хронологии изменений надо ввести команду git log. После ее ввода отобразятся все коммиты, относящиеся к выбранной в данный момент ветке. А если добавить к git log ключ --oneline, то все коммиты будут выводиться построчно.
Как просмотреть различия между ветками
Для сравнения изменений, добавленных в две ветви, нужно использовать команду git diff, после пробела указав наименования обеих веток:
git diff <ветка1> <ветка2>
Удаленные ветки: как с ними работать
Удаленные ветки — это ссылки на состояние веток, находящихся в удаленных репозиториях. С их помощью можно делиться кодом с другими разработчиками, выстраивая прозрачную совместную работу над проектом.
Как переключиться на удаленную ветку
Для загрузки локальных веток в удаленное хранилище нужно использовать команду:
git fetch --all
Сразу после этого появится возможность переключения на удаленную ветку с командой git checkout и наименованием ветки после пробела.
Как синхронизировать удаленные ветки
Синхронизация локального репозитория с удаленным позволяет загрузить обновления, сделанные другими разработчиками. Для этого нужно выполнить команду git fetch— она обновит информацию о ветках и коммитах, но при этом не затронет изменения, привнесенные в текущую ветвь.
Отличие команды checkout от switch
В более поздних версиях Git появилась команда git switch. Она работает исключительно с ветками репозитория, тогда как checkout — это универсальный инструмент для навигации по веткам, коммитам и файлам.
Работа с Git в облаке
С большинством популярных решений для Git, например, с GitHub, GitLab, Bitbucket, можно работать в облаке Cloud.ru. При таком использовании эти решения помогают значительно повысить эффективность и скорость разработки проектов даже очень большими распределенными командами, потому что облако гарантирует им бесперебойный и мгновенный доступ ко всем вносимым изменениям.
Cloud.ru Evolution — публичное облако на собственных разработках
Ваш доступ к IaaS- и PaaS-сервисам, вычислительным мощностям с GPU и выделенным физическим серверам
ПопробоватьКоротко о ветках в Git
Умение работать в Git помогает лучше организовать рабочий процесс всей команды, позволяя гибко использовать исходную кодовую базу и безопасно развивать проект. А само ветвление сильно упрощает разработку, ведь ветки обеспечивают безопасный совместный доступ к коду. Именно они дают возможность работать над созданием нового продукта пластично и без проблем.
Вам может понравиться


Как применять git reset и git revert эффективно: отменяем коммиты в Git

IT-аналитик: кто такой и чем занимается в разработке

VDI для бизнеса: что это такое и как работает

3 ключевые ошибки управления доступом в облаке: находим и устраняем

Главные новости GoCloud и последние обновления в облаке — дайджест Cloud.ru

Гибридное облако: 5 эффективных сценариев применения

Dogfooding as a Service: как пополнять бэклог идей по продуктам без особых усилий

Приглашаем на IT-конференцию GoCloud 10 апреля 2025

Нереляционная база данных NoSQL — что это и в чем ее особенности

Cloud.ru и AI: как мы поддержали выход Wildberries на новый рынок

Какие новости за февраль и март — дайджест Cloud.ru

INSERT INTO SQL: примеры добавления данных в таблицу

Node.js на Ubuntu 24.04: как установить и настроить

Что такое HTTPS и как он защищает ваши данные

REST API: что это и как использовать

Как создать Telegram Web App: инструкция по разработке Mini App

Как привлекать клиентов и зарабатывать до 20% на рекомендациях: готовые инструменты

Коды ошибок HTTP: что нужно знать о серверных и клиентских ошибках

Лучшие дистрибутивы Linux: выбор популярных версий

Система управления базами данных (СУБД): что это такое и зачем нужна

Все о Telegram-ботах: какие бывают и как их сделать самому

VPS/VDS: что это такое и чем они отличаются? Полное руководство

Что такое NVMe и как он отличается от SATA SSD и M.2

Микросервисная архитектура: чем она хороша и кому нужна

Как развернуть WordPress в облаке: инструкция для новичков

Применение LLM в бизнесе: опыт лидеров и роль облачного провайдера

Центры обработки данных (ЦОД): что это и как они работают

Какие новости за январь — дайджест Cloud.ru

Команда grep в Linux: как искать строки и шаблоны

PostgreSQL: что это за СУБД и чем она хороша

Что может chmod: как управлять доступами к файлам и папкам в Linux

Как узнать IP-адрес в Linux через командную строку

Как узнать IP-адрес своего компьютера

Система MySQL: что это и для чего нужна

Команды kill и killall в Linux: как завершить ненужные процессы

Работа с файлами в Linux: их создание и организация через терминал

Стандарт Tier III для дата-центра: что значит и почему это круто

Какие новости за декабрь и начало января — дайджест Cloud.ru

Что такое FTP-протокол и как настроить FTP сервер

Белые и серые IP, динамические и статические - в чем различие

Как защищать сайты и приложения в облаке от DDoS-атак

Какие новости за ноябрь — дайджест Cloud.ru

BAT-файлы: что это такое, зачем они нужны и как их создавать

Гайд по протоколу HTTP: расшифровка, структура и механизм работы

Межсетевой экран, firewall и брандмауэр: что это, в чем между ними разница и зачем они нужны

Kubernetes на Cloud.ru Evolution: возможности и преимущества

Какие новости за октябрь — дайджест Cloud.ru

Как создать сетевую архитектуру для размещения межсетевых экранов на платформе Облако VMware

Рассказать про технологии лампово, или Как мы провели конференцию GoCloud Tech для инженеров и...

Какие новости за сентябрь — дайджест Cloud.ru

Высокоресурсные вычисления: роль суперкомпьютеров в жизни и бизнесе

Реферальная программа Cloud.ru: как устроена и как на ней зарабатывать

Сетевая модель OSI: что это такое и зачем она нужна

Какие новости за август — дайджест Cloud.ru

Сетевые протоколы передачи данных — что это такое и какие бывают

Какие новости за июль — дайджест Cloud.ru

Как новые возможности в юридических документах Cloud.ru облегчают работу с договорами и не только

Какие новости за июнь — дайджест Cloud.ru

Как обновления VMware Cloud Director облегчают управление и делают работу с инфраструктурой в ...

Как мы рассчитывали «Панораму российского IT-рынка» за 2022 год

Как снизить риски утечки данных и санкций госрегуляторов: 152-ФЗ в Cloud.ru

Бесплатный курс по работе с Cloud.ru Advanced: рассказываем, в чем польза, кому подойдет и как...

Как модель Anything as a Service упрощает IT-процессы

Снижение рисков на производстве: AI-сервис распознает нарушения ношения СИЗ

Kandinsky 2.1: новый уровень в генерации изображений по текстовому описанию

Облачные сервисы для стартапов: как пройти путь от идеи до цифрового продукта и не разориться

Создать пользователя, настроить 2FA, связаться с поддержкой — новые возможности личного кабине...

VDI: что это, как работает и в чем выгода для бизнеса

Как защитить облачную инфраструктуру — рассказываем на примере межсетевого экрана нового покол...

Как начать использовать AI/ML на практике

Бессерверные вычисления: что это за технология и кому она нужна

Чек-лист: как обеспечить безопасность облачной инфраструктуры

Искусственный интеллект

Что такое IaaS?

Что такое PaaS

Machine Learning

Data Science

Машинное обучение без учителя

Классическое машинное обучение

Нейронные сети

Глубокое обучение

Защита персональных данных: как легче соблюдать закон с Cloud.ru и сохранять спокойствие

Как сохранить IT-инфраструктуру и бизнес: руководство к действию

Машинное обучение и Big Data в кибербезопасности

Ответы на актуальные вопросы

Что такое DDoS-атаки, чем они опасны и как от них защититься

Аудит информационной безопасности: что это, зачем и когда его проводить

Межсетевые экраны: UTM, NGFW-системы, NTA, NDR

Обзор межсетевых экранов, систем IPS и IDS

PostgreSQL vs MySQL: какая система подходит вашему бизнесу

Основы резервного копирования

Специальное предложение «180 дней тестового периода резервного копирования» для всех клиентов
Платформа SberCloud Advanced теперь обеспечивает максимальный уровень защиты персональных данных

Что такое объектное хранилище S3 и как его используют

Customer Enablement: как SberCloud работает с клиентами, чтобы сделать миграцию в облако комфо...

Сеть доставки контента CDN: новые функциональные возможности и преимущества

Объясняем на кейсах: польза CDN для бизнеса

Новая Windows Server 2022 в облаке SberCloud — новые возможности клиентов

Запуск нового сервиса Managed OpenShift в облачной среде SberCloud

Как работает технология DNS

SberCloud Advanced запустила третью ресурсную зону доступности для комфортной работы клиентов

PostGIS в PostgreSQL — как можно использовать

GitLab для начинающих: как и для чего используется

Краткий обзор методологии CI/CD: принципы, этапы, плюсы и минусы

Персональные данные: правильно обрабатываем и храним

Кто и зачем использует облачные модели IaaS и PaaS

152-ФЗ в облаке: хранение персональных данных в облаке

Как работает CDN (Content Delivery Network)?

Service Level Agreement (SLA): все о соглашении об уровне сервиса

Что такое «интернет поведения» (IoB)?

Чек-лист: 6 шагов для успешной миграции в облако

Машинное обучение: просто о сложном

Профессия DevOps-инженер: кто это и чем занимается

Гайд по Kubernetes. Эпизод I: k8s для неразработчиков

Публичные, частные и гибридные облака: в чем разница?
