Как изменить название ветки git

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

Управление ветками

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

Команда git branch делает несколько больше, чем просто создаёт и удаляет ветки.
При запуске без параметров, вы получите простой список имеющихся у вас веток:

$ git branch
  iss53
* master
  testing

Обратите внимание на символ *, стоящий перед веткой master: он указывает на ветку, на которой вы находитесь в настоящий момент (т. е. ветку, на которую указывает HEAD).
Это означает, что если вы сейчас сделаете коммит, ветка master переместится вперёд в соответствии с вашими последними изменениями.
Чтобы посмотреть последний коммит на каждой из веток, выполните команду git branch -v:

$ git branch -v
  iss53   93b412c Fix javascript issue
* master  7a98805 Merge branch 'iss53'
  testing 782fd34 Add scott to the author list in the readme

Опции --merged и --no-merged могут отфильтровать этот список для вывода только тех веток, которые слиты или ещё не слиты в текущую ветку.
Чтобы посмотреть те ветки, которые вы уже слили с текущей, можете выполнить команду git branch --merged:

$ git branch --merged
  iss53
* master

Ветка iss53 присутствует в этом списке потому что вы ранее слили её в master.
Те ветки из этого списка, перед которыми нет символа *, можно смело удалять командой git branch -d; наработки из этих веток уже включены в другую ветку, так что ничего не потеряется.

Чтобы увидеть все ветки, содержащие наработки, которые вы пока ещё не слили в текущую ветку, выполните команду git branch --no-merged:

$ git branch --no-merged
  testing

Вы увидите оставшуюся ветку.
Так как она содержит ещё не слитые наработки, попытка удалить её командой git branch -d приведёт к ошибке:

$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

Если вы действительно хотите удалить ветку вместе со всеми наработками, используйте опцию -D, как указано в подсказке.

Подсказка

Если в качестве аргумента не указан коммит или ветка, то опции --merged и --no-merged покажут что уже слито или не слито с вашей текущей веткой соответственно.

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

$ git checkout testing
$ git branch --no-merged master
  topicA
  featureB

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

Внимание

Не переименовывайте ветки, которые всё ещё используются другими участниками.
Не переименовывайте ветку в master/main/mainline, не прочитав раздел «Изменение имени главной ветки».

Предположим, у вас есть ветка с именем bad-branch-name, и вы хотите изменить её на corrected-branch-name, сохранив при этом всю историю.
Вместе с этим, вы также хотите изменить имя ветки на удалённом сервере (GitHub, GitLab или другой сервер).
Как это сделать?

Переименуйте ветку локально с помощью команды git branch --move:

$ git branch --move bad-branch-name corrected-branch-name

Ветка bad-branch-name будет переименована в corrected-branch-name, но это изменение пока только локальное.
Чтобы все остальные увидели исправленную ветку в удалённом репозитории, отправьте её туда:

$ git push --set-upstream origin corrected-branch-name

Теперь проверим, где мы сейчас находимся:

$ git branch --all
* corrected-branch-name
  main
  remotes/origin/bad-branch-name
  remotes/origin/corrected-branch-name
  remotes/origin/main

Обратите внимание, что текущая ветка corrected-branch-name, которая также присутствует и на удалённом сервере.
Однако, старая ветка всё ещё по-прежнему там, но её можно удалить с помощью команды:

$ git push origin --delete bad-branch-name

Теперь старое имя ветки полностью заменено исправленным.

Изменение имени главной ветки

Предупреждение

Изменение имени ветки, например master/main/mainline/default, сломает интеграции, службы, вспомогательные утилиты и скрипты сборки, которые использует ваш репозиторий.
Прежде чем сделать это, обязательно проконсультируйтесь с коллегами.
Также убедитесь, что вы выполнили тщательный поиск в своём репозитории и обновили все ссылки на старое имя ветки в вашем коде или скриптах.

Переименуйте локальную ветку master в main с помощью следующей команды:

$ git branch --move master main

После этого, локальной ветки master больше не существует, потому что она была переименована в ветку main.

Чтобы все остальные могли видеть новую ветку main, вам нужно отправить её в общий репозиторий.
Это делает переименованную ветку доступной в удалённом репозитории.

$ git push --set-upstream origin main

В итоге, состояние репозитория становится следующим:

$ git branch --all
* main
  remotes/origin/HEAD -> origin/master
  remotes/origin/main
  remotes/origin/master

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

Теперь, для завершения перехода на новую ветку перед вами стоят следующие задачи:

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

  • Обновите конфигурацию всех запускаемых тестов.

  • Исправьте скрипты сборки и публикации артефактов.

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

  • Обновите документацию, исправив ссылки, указывающие на старую ветку.

  • Слейте или отмените запросы на слияние изменений, нацеленные на старую ветку.

После того, как вы выполнили все эти задачи и уверены, что ветка main работает так же, как ветка master, вы можете удалить ветку master:

$ git push origin --delete master

About renaming branches

You can rename a branch in a repository on GitHub.com. For more information about branches, see «About branches).»

When you rename a branch on GitHub.com, any URLs that contain the old branch name are automatically redirected to the equivalent URL for the renamed branch. Branch protection policies are also updated, as well as the base branch for open pull requests (including those for forks) and draft releases. After the rename is complete, GitHub provides instructions on the repository’s home page directing contributors to update their local Git environments.

Although file URLs are automatically redirected, raw file URLs are not redirected. Also, GitHub does not perform any redirects if users perform a git pull for the previous branch name.

GitHub Actions workflows do not follow renames, so if your repository publishes an action, anyone using that action with @{old-branch-name} will break. You should consider adding a new branch with the original content plus an additional commit reporting that the branch name is deprecated and suggesting that users migrate to the new branch name.

Renaming a branch

  1. On GitHub.com, navigate to the main page of the repository.
  2. Above the list of files, click Branches.
    Branches link on overview page
  3. In the list of branches, to the right of the branch you want to rename, click .
    Pencil icon to the right of branch you want to rename
  4. Type a new name for the branch.
    Text field for typing new branch name
  5. Review the information about local environments, then click Rename branch.
    Local environment information and "Rename branch" button

Updating a local clone after a branch name changes

After you rename a branch in a repository on GitHub, any collaborator with a local clone of the repository will need to update the clone.

From the local clone of the repository on a computer, run the following commands to update the name of the default branch.

$ git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME
$ git fetch origin
$ git branch -u origin/NEW-BRANCH-NAME NEW-BRANCH-NAME
$ git remote set-head origin -a

Optionally, run the following command to remove tracking references to the old branch name.

$ git remote prune origin

Окт 09, 2021

Olha L.

3хв. читання

Если вы работаете в Git, то вам, наверняка, знакома ситуация, когда ветка случайно была названа неправильно или просто нужно сменить её название, чтобы лучше организовать проект. В любом случае это довольно распространённое явление, когда вам нужно переименовать ветку Git, локальную или удалённую. В этом руководстве мы покажем, как это сделать. А также кратко объясним, что такое Git-репозиторий и некоторые полезные команды Git.

Установите и используйте Git вместе с мощным и надёжным хостингом от Hostinger.

Как Переименовать Локальную Ветку Git?

Прежде чем мы начнём, убедитесь, что вы выбрали ветку, которую хотите переименовать:

git checkout staroje-imia

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

git branch --list

Разобравшись с этим, выполните следующее действие:

  1. Чтобы переименовать текущую ветку Git, добавьте к команде опцию -m:
    git branch -m novoje-imia
  1. Вы также можете переименовать локальную ветку, находясь на другой ветке, используя следующие две команды:
    git checkout master
    git branch -m staroje-imia novoje-imia
  1. Наконец, эта команда выведет список всех, как локальных, так и удалённых веток. Убедитесь, что ветка с новым названием есть в этом списке.
    git branch -a

Как Переименовать Удалённую Ветку Git?

Хотя удалённую ветку и нельзя переименовать напрямую, процесс довольно простой и состоит лишь с трёх шагов:

  1. Для начала вам нужно будет переименовать локальную ветку, следуя инструкции выше.
  2. Затем удалите старую ветку и запуште новую. Сделать это можно с помощью следующих простых команд:
    git push origin --delete staroje-imia
    git push origin :staroje-imia novoje-imia
  1. Выгрузите новую ветку и «закрепите» её за локальной:
    git push origin -u novoje-imia

Как Создать Новую Локальную Ветку Git?

Прежде чем создавать новую ветку, обратите внимание, что каждый репозиторий, о котором мы будем говорить дальше, содержит основную стабильную ветку (master branch), содержащую изменения, готовые для продакшена. Когда вы создаёте ветку, всё, что делает Git, это создаёт новый указатель.

Мы можем создать новую локальную ветку, выполнив следующие шаги.

  1. Перейдите в корень вашей master branch:
    cd nazvanije-repozitorija
  1. Вы можете создать ветку из главной ветки с помощью следующей команды:
    git branch imia-novoj-vetki

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

    git checkout -b imia-novoj-vetki

    Вы также можете клонировать ветку и затем перейти на неё:

    git checkout -b imia-novoj-vetki origin/imia-novoj-vetki
  1. Переключитесь на новую ветку:
    git checkout imia-novoj-vetki
  1. Наконец, убедитесь, что вы находитесь в новой ветке:
    git status

Как Удалить Локальную Ветку Git?

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

git branch -d imia-vetki
git branch -D imia-vetki

Опция -d (–delete) удалит локальную ветку, если вы уже запушили и смержили её с удалённой веткой.

Опция -D (–delete –force) удалит локальную ветку независимо от того, успели вы запушить и смержить её с удалённой веткой или нет.

Как Удалить Удалённую Ветку Git?

Вы также можете удалить удалённую ветку и указать, как название удалённого репозитория, так и ветки. В большинстве случаев, название удалённого сервера по умолчанию — «origin«. Команда будет выглядеть так:

git push imia_udalennogo_repozitorija --delete imia-vetki
git push imia_udalennogo_repozitorija :imia-vetki

Осмотр и Сравнение

В Git вы можете просмотреть все внесённые вами изменения в любое время. Чтобы увидеть эти изменения, введите следующую команду:

git log

Или, для более подробной информации:

git log --summary

Что Такое Ветка Git? 

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

Ветки — это отдельные линии развития вашего проекта. Они позволяют работать параллельно с master веткой, при этом не влияя на неё. Когда же ваша часть кода готова, вы можете выполнить слияние, или мерж.

Ветвление Git позволяет создавать, удалять и смотреть другие ветки. Кроме того, ветка действует как указатель на моментальный снимок изменений (snapshot), которые вы внесли или хотите внести в файлы проекта. Это полезно в ситуациях, когда вы хотите добавить дополнительную функцию или устранить баг.

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

Что Такое Git-репозиторий?

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

Когда вы инициализируете Git-репозиторий, в корне папки проекта автоматически создаётся каталог .git/. Здесь Git отслеживает изменения в файлах проекта, сохраняет объекты, ссылки и дополнительную информацию для управления репозиториями.

Будьте осторожны, ведь если вы случайно удалите папку .git/, вы потеряете всю истерию вашего проекта.

Как Клонировать Удалённый Репозиторий?

Чтобы клонировать репозиторий, мы будем использовать команду Git clone. Кроме того, вам также необходимо указать URL-адрес репозитория:

  1. Вы можете клонировать главную ветку (master branch) из удалённого репозитория с помощью HTTPS или SSH.
    Для HTTPS:

    git clone https://github.com/imia-polzovatelia/imia-vashego-repozitorija.git

    Для SSH:

    git clone ssh://github.com/imia-polzovatelia/imia-vashego-repozitorija.git
  2. Чтобы перейти в корень клонированного репозитория, вы можете использовать команду cd:
    cd vashi_prilozhenija
  1. Проверить состояние ветки можно с помощью простой команды Git:
    git status

Дополнительная Информация о Git

Если вам нужна информация о том, как пользоваться Git, обратитесь к официальной документации, доступной онлайн. Кроме того, рекомендуем ознакомиться с нашими руководствами об основных командах Git, о том, как использовать PuTTY SSH-терминал для подключения к вашей учётной записи хостинга или VPS-серверу, как установить Git (англ) в Ubuntu, а также подробное руководство по GitHub.

Итоги

Теперь вы знаете, как управлять ветками с помощью различных команд. Вы можете создать или переименовать ветку Git, посмотреть список существующих веток или удалить какую-то из них.

Мы надеемся, что вам понравилось это руководство. И с нетерпением ждём вас в следующем!

Author

Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.

Понравилась статья? Поделить с друзьями:
  • Как изменить название версии майнкрафт
  • Как изменить название версии minecraft tlauncher
  • Как изменить название вайфая ростелеком
  • Как изменить название вайфая на телефоне
  • Как изменить название вайфая на компьютере