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

Одна из самых сильных сторон Git – его легкие ветки. Они позволяют эффективно работать над параллельными этапами разработки. Разработчик может даже создать отдельные ветки для отдельных ошибок. И во времени, и в пространстве филиалы почти бесплатны.

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

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

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

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

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

Образец репозитория с ветвями

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

  $ git branch -vv 
1 dev 1ae41e8 [origin/dev] first commit
2 * main 1ae41e8 [origin/main] first commit

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

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

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

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

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

  $ git branch -  d dev  

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

  ошибка:  Невозможно удалить ветку 'main', извлеченную из '/tmp/sandbox'  

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

   Deleted branch dev (ранее 1ae41e8).  

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

  error: ветка dev не полностью объединена. 
Если вы уверены, что хотите удалить его, запустите 'git branch -D dev'.

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

  предупреждение: удаление ветки 'dev', которая была объединена с 
'refs /remotes/origin/dev ', но еще не объединен с HEAD.
Удаленная ветвь dev (была 9a6d20b).

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

  $ git push -d origin dev 
На github.com:bobbykjack/sandbox.git
- [удалено] dev

Удаление локальных и удаленных ветвей с помощью рабочего стола GitHub

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

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

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

Удаление ветвей с использованием GitKraken

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

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

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

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

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

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

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

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

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

Как и в случае с настольным приложением GitHub, веб-сайт GitHub не позволит вам удалить ветку по умолчанию. Варианта просто не появляется. Однако удалить ветку несложно. На странице Code репозитория нажмите ссылку branch , найдите ветку, которую нужно удалить, затем нажмите Удалить эту ветку значок, похожий на корзину:

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

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

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

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

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

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

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

.

Оцените статью
futurei.ru
Добавить комментарий