Git Branch

Содержание
branch: Ветки
Создать новую ветку
checkout: Сменить ветку
-d: Удалить ветку
-m: Переименовать ветку
Обновить ветку из удалённого репозитория
clone -b: Клонировать только определённую ветку
Создать ветку от другой ветки
Подтянуть удалённую ветку
Другие статьи про Git

Ветки (Branches)

Посмотреть список веток, которые видны локально

git branch

andrei/PROJECT-12345_install_from_disk andrei/PROJECT-10000_acceptance_test_automation * master new_feature

Посмотреть какая ветка сейчас активна

git branch | grep \*

* master

Посмотреть список веток, которые есть на удалённом репозитории (GitHub, GitLab, BitBucket…)

git branch -r

alexmo/PROJECT-20034_monitoring andrei/PROJECT-12345_install_from_disk … lester/FARGO-23495_visa_to_beijing * master … zack/PROJECT-20034_monitoring

Посмотреть список всех веток, которые есть локально и на удалённом репозитории

git branch -a

alexmo/PROJECT-20034_monitoring andrei/PROJECT-12345_install_from_disk andrei/PROJECT-10000_acceptance_test_automationlester/FARGO-23495_visa_to_beijing * master new_featurezack/PROJECT-20034_monitoring

Посмотреть список веток и последних коммитов в эти ветки

git branch -v

alexmo/PRJCT-200_monitoring f073345ub5 [PROD-200] - adds jix feature andrei/PRJCT-123_autotest 7950xcde09 [PROD-123] - autotest: adds soc test * master 30877153ec [no-issue] - updates dependency list

Прежде чем создавать новую ветку нужно убедиться в том, что в старой нет несохранённых изменений.

git status

On branch master nothing to commit, working tree clean

Также если вы, например, находитесь в master сперва сделайте

git pull

Чтобы новая ветка отпочковалась от самой свежей версии master

Создать новую ветку

Чтобы создать новую ветку выполните

git branch new-branch

Проверить появилась ли она в списке

git branch

… * master new-branch

git branch | grep new-branch

new-branch

Перейти в новую ветку

git checkout new-branch

Switched to branch 'new-branch'

Вернуться в ветку master

git checkout master

Если Вы сделали в ветке new-branch какие-то изменения, закоммитили из и теперь хотите, добавить эти изменения в ветку master нужно выполнить команду merge

git merge new-branch

Updating f521fc5..fe7276a
Fast-forward
index.html | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Создать новую ветку и сразу перейти в неё можно одной командой

git checkout -b new-branch-2

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Удалить ветку

Удалить локальную ветку

git branch -d branchName

Deleted branch branchName (was 1ce400ce6).

Удалить внешнюю ветку

git push origin --delete remoteBranchName

Удалить несколько веток

Допустим существует несколько веток, которые удовлетворяют какому-то условию, например, начинаются на одно и то же слово

git branch

andrei/add_header andrei/capitalize andrei/capitalize_header_and_ssh andrei/capitalize_names andrei/update_header * main

Удалить все ветки кроме main в этом случае можно командой

git branch -d $(git branch | grep andrei)

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

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

git branch -m newName

Вместо newName подставьте нужное вам имя.

Обновить ветку из удалённого репозитория

Если ваша локальная ветка отстала от удалённого репозитория и нужно обновить - выполните git pull.

git pull origin ИМЯ_ВЕТКИ

Это может произойти, если вы создали ветку на одном компьютере, сделали push в удалённый репозиторий (github, gitlab…) затем перешли в эту ветку на втором компьютере сделали push оттуда и вернулись на первый компьютер. В локальной ветке последних коммитов нет, поэтому нужно скачать их следующей командой.

git pull origin topic/qa/HH-2398_update_malaga_hotels

From gitlab.heihei.com:HEI/HEI * branch topic/qa/HH-2398_update_malaga_hotels -> FETCH_HEAD Updating 095a284bd..43cd9724d Fast-forward src/countries/spain/malaga/index.php | 26 ++++++++++++++++++++++---- src/countries/spain/costa-del-sol/index.php | 24 ++++++++++++++++++++---- 2 files changed, 42 insertions(+), 8 deletions(-)

Клонировать только определённую ветку

Чтобы клонировать только определённую ветку нужно указать её с помощью опции -b

git clone -b BranchName git@github.com:CompanyName/RepoName.git

Создать ветку от другой ветки

Если нужно создать ответвление не от главной ветки, а от какой-то другой её нужно указать после названия новой ветки.

Например создать ветку child от существующей ветки parent можно следуюущим образом

git checkout -b child parent

Подтянуть удалённую ветку

Допустим, что клонирован репозиторий у которого несколько веток.

Клонирование с GitHub по умолчанию получает ветку main (master) можно указать и другую ветку но в обоих случаях после клонирования будет доступна одна ветка.

GitHub использую как собирательное название для все сервисов удаленного хранения репозиториев.

git branch

main

Если создать локально другие ветки, они тоже будут видны. Но ветки, созданные коллегами на других машинах, даже если они запушены в github доступны не будут.

Их можно увидеть командой

git branch -r

origin/PROJECT-123456-topic origin/PROJECT-123457-topic …

Чтобы сделать такую ветку доступной локально нужно выполнить

git checkout -b local_name origin/remote_name

local_name может быть любым, но обычно делают таким же как и на github

git checkout -b PROJECT-123456-topic origin/PROJECT-123456-topic

Ветка PROJECT-123456-topic будет скачана с GitHub и станет активной.

Автор статьи: Андрей Олегович

Похожие статьи
Git
Установка
Основы
branch: Ветки
stash
Перейти с HTTPS на SSH
.gitignore
Необходимые Bash команды
Remote
GitHub
GitLab
Ошибки
Git Bash
Работа с API GitHub

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: