Как удалить ветку в Git локально и удаленно

1
компьютеры и технологии 18.webp.webp

Последнее обновление 01.03.2024 — Василий Иванов

Ключевые выводы

  • Удаление ветвей — важная часть типичного рабочего процесса Git.
  • Удалить локальную ветку можно с помощью команды «git Branch -d [branchname]», но будьте осторожны с несвязанными изменениями.
  • Различные инструменты, такие как GitHub Desktop, GitKraken, Tower и Bitbucket, имеют свои собственные методы удаления ветвей, поэтому ознакомьтесь с конкретным процессом для каждого инструмента.

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

По теме:  Как отключить контрольные вопросы локальной учетной записи в Windows 11

Зачем удалять ветку?

Во-первых, если вы все еще учитесь структурировать проект с помощью веток git, вполне вероятно, что вы создадите ветку, а затем решите, что в этом нет необходимости. Это нормально, поскольку ветвление — это легкая операция; он очень быстрый и эффективно использует дисковое пространство.

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

Удаление веток должно быть такой же частью вашего повседневного рабочего процесса, как и их создание.

Пример репозитория с ветками

Примеры ниже относятся к образцу репозитория со следующей структурой:

Обратите внимание, что репозиторий имеет две ветки: main и dev. Каждая из этих локальных ветвей является ветвью отслеживания с соответствующей восходящей ветвью на удаленном сервере (источнике).

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

Удаление ветки с помощью командной строки

Основной синтаксис команды для удаления ветки:

git branch (-d | -D) [-r] <branchname>... 

Как удалить локальный филиал

Самая простая форма команды удаляет локальную ветку при условии, что все ее изменения были объединены:

git branch -d dev 

Когда все пойдет хорошо, вы увидите сообщение с подтверждением:

Вы не можете удалить ветку, которая активна в данный момент; если вы попытаетесь это сделать, вы получите такое сообщение:

Если вы удалите локальную ветку с несвязанными, неотправленными изменениями, вы потеряете эти изменения. Поэтому git по умолчанию откажется удалять такую ​​ветку. В этом примере у разработчика есть несвязанные изменения, которые не были отправлены в удаленную ветку:

Как говорится в сообщении об ошибке, вы можете принудительно удалить с помощью флага -D.

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

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

Удаление удаленной ветки — это совсем другое дело. Для удаления вы будете использовать команду git push вместе с флагом -d. После этого укажите имя удаленного устройства (часто источника) и имя ветки:

Удаление локальных и удаленных веток с помощью GitHub Desktop

В отличие от программы git с командной строкой, настольное приложение GitHub позволяет удалять только активную ветку. Выполнить это действие можно через меню «Ветвь», выбрав опцию «Удалить» и подтвердив ее:

GitHub Desktop не позволит вам удалить ветку по умолчанию, например, основную, хотя сам git поддерживает это. Если ветка по умолчанию активна в данный момент, приложение отключает действие меню.

Если ветка также представляет собой удаленную ветку, GitHub Desktop также предоставляет возможность удалить ее с удаленного устройства:

Удаление веток с помощью GitKraken

GitKraken отображает локальные и удаленные ветки вашего репозитория на левой боковой панели. Необходимо удалить каждый отдельно.

Наведите указатель мыши на соответствующее имя ветки и щелкните меню «Действия ветки», которое выглядит как три вертикальные точки. В меню выберите Удалить <имя ветки>:

Вы увидите подтверждающее сообщение, информирующее вас о том, что это разрушительная операция. Вы можете подтвердить свое желание продолжить с помощью кнопки «Удалить»:

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

Удаление локальных и удаленных веток с помощью Tower

Удаление ветки с помощью Tower очень похоже на удаление ветки с помощью GitKraken. Приложение отображает локальные и удаленные ветки на панели слева. Щелкните правой кнопкой мыши любую ветку и выберите пункт «Удалить» в контекстном меню:

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

Удаление ветки на GitHub

GitHub действует только как удаленный источник, поэтому его ветки по умолчанию являются удаленными. Если вы удалите ветку с помощью веб-сайта GitHub, вам придется удалить соответствующую локальную ветку, используя один из других методов здесь.

Как и в случае с приложением GitHub Desktop, веб-сайт GitHub не позволит вам удалить ветку по умолчанию. Если вы попытаетесь, вы увидите сообщение об ошибке:

Однако удалить любую другую ветку очень просто. На странице «Код» репозитория щелкните ссылку ветвей, найдите ветку, которую нужно удалить, затем щелкните значок «Удалить ветку», который выглядит как мусорное ведро:

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

Обратите внимание, что после удаления вы увидите кнопку «Восстановить ветку». Однако это просто полезная функция отмены на случай, если вы случайно нажмете значок удаления. Не полагайтесь на это, потому что как только вы обновите страницу или уйдете со страницы, вы потеряете эту возможность!

Удаление локальных и удаленных веток в Bitbucket

Bitbucket, как и GitHub, не позволит вам удалить ветку по умолчанию. Bitbucket называет это основной веткой в ​​настройках репозитория. Вы можете удалить любую другую ветку, указанную на вкладке «Ветви», через соответствующее меню «Действия»:

Вы также можете удалить несколько веток одновременно, если выполняете большую операцию очистки:

Удаление веток — часть типичного рабочего процесса Git

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

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