Найти в Дзене
Герман Геншин

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

Оглавление

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

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

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

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

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

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

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

-2

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

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

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

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

Простейшая форма команды удаляет локальную ветку, если все её изменения были объединены:

Если всё идёт правильно, вы увидите подтверждающее сообщение:

-3

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

-4

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

-5

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

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

-6

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

-7

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

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

-8

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

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

-9

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

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

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

-10

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

-11

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

-12

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

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

-13

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

-14

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

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

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

-15

Однако удалить любую другую ветку очень просто. На странице Code репозитория перейдите по ссылке branches, найдите ветку, которую нужно удалить, и нажмите на значок Delete branch, который выглядит как мусорная корзина:

-16

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

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

-17

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

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

-18

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

-19

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

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

Если вам сложно запомнить, как именно удалить ветку, подумайте о том, чтобы создать псевдонимы для удаления веток и упростить этот процесс.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Вы также можете прочитать меня здесь: