- Что такое ветки
- Для чего нужны ветки
- Команда git branch
- Команда git checkout
- Как создать новую ветку в Git
- Как переключиться на ветку в Git
- Как слить ветки
- Управление ветками с помощью git branch
- Как закоммитить изменения в новую ветку
- Как переименовать ветку git
- Как удалить ветку git
- Как просмотреть состояния файлов ветки
- Как просмотреть истории коммитов ветки
- Как просмотреть различия между коммитами
Что такое ветки
Ветка в Git представляет собой последовательность коммитов, которые упорядочены по времени.
У каждой ветки есть своё уникальное название. Основная ветка, которая обычно называется master, создаётся при установке репозитория и служит основной веткой проекта. Остальные ветки можно называть по своему усмотрению.
Ветки создаются для работы над новыми функциями и исправлением ошибок. Все изменения в проекте вносятся в отдельной ветке, после чего она объединяется с основной.
Для чего нужны ветки
- Изоляция изменений. Ветки позволяют вам работать над новыми фичами, исправлениями багов или экспериментами независимо от основной кодовой базы. Это означает, что изменения, которые были сделаны в одной ветке, не повлияют на другие ветки, пока вы не решите их объединить.
- Совместная работа. Ветки облегчают работу в команде, так как каждый разработчик может работать в своей ветке, не мешая другим. Когда работа завершена, изменения можно объединить в основную ветку (обычно это ветка main или master).
- Управление версиями. Ветки помогают управлять разными версиями проекта. Вы можете создавать ветки для различных релизов или поддерживать стабильную ветку для продакшена, в то время как разработки ведутся в другой ветке.
- История изменений. Использование веток делает историю изменений более понятной и управляемой. Вы можете легко отслеживать, какие изменения были внесены в какой ветке и когда они были объединены с другими ветками.
Команда git branch
Команда git branch в Git используется для управления ветками в вашем репозитории. Она выполняет несколько различных функций в зависимости от того, какие аргументы или параметры вы ей передаете. С её помощью можно просматривать список веток и создавать новые.
Команда git checkout
Команда git checkout в Git используется для переключения между ветками, а также для восстановления файлов или коммитов. Она выполняет несколько различных функций в зависимости от переданных аргументов. С помощью git checkout можно переключать на другую ветку, восстанавливать файлы из другого коммита и прочее.
Как создать новую ветку в Git
Чтобы создать новую ветку в Git, вы можете использовать git branch. Вот как это сделать:
Эта команда создает новую ветку с именем «new_branch_name».
Хотя после выполнения этой операции ветка уже создана, но вы всё ещё остаетесь в прежней ветке. Если вы хотите перейти на другую ветку (в том числе в только что созданную), вам нужно использовать команду checkout:
Где «branch_name» – это название ветки.
Чтобы определить на текущее местоположения разработчика, Git использует специальный параметр HEAD. Он указывает на текущую локальную ветку. Когда вы выполните команду checkout, HEAD переместится на новую ветку.
Как переключиться на ветку в Git
Чтобы переключиться на другую ветку в Git, вы также можете использовать команду git checkout. Вот как это сделать:
Эта команда переключит вас на ветку «branch_name».
Как слить ветки
Ветки помогают отделить стабильный код проекта от функционала, который находится в стадии разработки и тестирования. Когда разработчик завершает работу над задачей, ветку с новым кодом необходимо объединить с основной веткой. Для этого используется команда git merge. Чтобы объединить код с основной веткой, выполните следующие шаги:
- Переключитесь на ветку master:
- Обновите локальную ветку с сервера:
- Выполните команду слияния:
Где «branch_name» – это название ветки, из которой будут взяты изменения.
Команда git merge берёт все изменения из указанной ветки и добавляет их в основную ветку. При этом сливаемая ветка остаётся неизменной, все данные в ней сохраняются в прежнем виде.
В процессе слияния могут возникнуть конфликты. Конфликты обычно появляются, когда два разработчика изменяют одну и ту же строку файла или один разработчик удаляет файл, который в это время редактирует другой. В таких случаях Git останавливает процесс слияния, чтобы вы могли разрешить конфликт.
Чтобы эффективно работать с конфликтами, вы можете использовать следующие опции:
- «--continue» продолжает слияние после разрешения конфликта.
- «--abort» прерывает процесс слияния и возвращает ветку к начальному состоянию.
Чтобы разрешить конфликт при изменении строк, отредактируйте файл, в котором возник конфликт. Удалите маркеры конфликта и оставьте те изменения, которые должны быть в итоговой версии.
Чтобы разрешить конфликт, который связан с удалением файлов, решите, следует ли вернуть удалённый файл в репозиторий или окончательно его удалить.
Управление ветками с помощью git branch
Эта команда способна на большее, чем просто создание веток в Git. Если запустить её без параметров:
Вы получите список существующих веток, где символом * будет отмечена та ветка, в которой вы сейчас находитесь. Это может выглядеть так:
* master
second_branch
С помощью параметра «-v» можно получить информацию о последнем сохранённом коммите в каждой ветке:
first_branch 8fa301b Fix math
* master 225cc2d Merge branch 'first_branch'
second_branch c56ee12 Refactor code style
Также существуют опции «--merged» и «--no-merged», с помощью которых можно отфильтровать список веток. Они позволяют получить список веток, которые уже были слиты, или, наоборот, тех, которые ещё не были слиты с другими.
Например, чтобы вывести ветки, которые уже были слиты с текущей:
first_branch
* master
Если вы хотите увидеть ветки, которые ещё не были слиты с текущей, используйте:
second_branch
Как закоммитить изменения в новую ветку
После внесения изменений в новой ветке необходимо зафиксировать их с помощью коммита. Для этого используйте следующие команды:
git commit -m "[комментарий]"
Как переименовать ветку git
Если вы хотите переименовать ветку, на которой в данный момент находитесь, выполните следующую команду:
Если вы хотите переименовать другую ветку, укажите старое и новое имена ветки:
Где:
- «new_branch_name» – новое название ветки;
- «old_branch_name» – старое название ветки.
Как удалить ветку git
Чтобы удалить локальную ветку в Git, используйте команду:
где branch_name — это имя ветки, которую вы хотите удалить.
Обратите внимание, что вы не можете удалить ветку, в которой находитесь в данный момент. Поэтому перед удалением вам нужно переключиться на другую ветку, например, master. Сделать это можно с помощью команды:
Если в ветке есть несохранённые изменения, то удалить её с помощью ключа «-d» не получится, так как Git защищает вас от случайной потери данных. Если вы уверены, что изменения не нужны и данные можно удалить, используйте команду:
где «branch_name» – это имя ветки, которую вы хотите удалить.
Эта команда принудительно удалит указанную ветку, независимо от наличия несохранённых изменений.
Как просмотреть состояния файлов ветки
Если переключиться на другую ветку, не сделав предварительно коммит, все незакоммиченные изменения будут перенесены в ту ветку, на которую вы переключились. Поэтому перед переходом необходимо убедиться, что все изменения в текущей ветке зафиксированы.
Для этого используйте команду:
Эта команда отображает текущее состояние вашего репозитория. Если все изменения зафиксированы, вы увидите сообщение:
nothing to commit, working tree clean
Если вы создавали, редактировали или удаляли файлы и не закоммитили изменения, вывод будет примерно таким:
Changes not staged for commit:
…
В этом случае необходимо закоммитить все нужные изменения перед переключением на другую ветку.
Как просмотреть истории коммитов ветки
Чтобы просмотреть истории коммитов, пропишите команду:
Чтобы получить более конкретный вывод, можно использовать следующие опции:
- «--author="имя-пользователя"» показывает коммиты, которые созданы заданным пользователем.
- «--after="дата"» показывает коммиты, которые созданы после указанной даты.
- «--before="дата"» показывает коммиты, которые созданы до указанной даты.
- «--oneline» показывает укороченный вывод коммитов в одну строку, включая только хеш и заголовок.
- «-p» выводит изменения, которые содержатся в каждом коммите.
Это лишь часть доступных опций. Полный список можно посмотреть с помощью команды:
Как просмотреть различия между коммитами
Команда git diff в Git используется для отображения различий между различными состояниями репозитория. Она показывает изменения, которые были внесены в файлы, но еще не закоммичены, а также может сравнивать изменения между коммитами, ветками и другими объектами.
Например, во время разработки часто возникает необходимость сравнить изменения между двумя коммитами перед тем, как что-то заливать:
Эта команда показывает изменения, внесенные в файлы, которые ещё не были подготовлены для коммита (не добавлены в индекс).
Чтобы сравнить изменения между двумя разными коммитами, используйте команду: