
Ветки — часть повседневного процесса разработки и одна из самых мощных функций Git. После слияния ветка не используется, за исключением исторического исследования. После успешного слияния рекомендуется удалить ветку.
В этом руководстве рассматривается, как удалить локальные и удаленные ветки Git.
Удалить локальную ветку Git
Команда git branch позволяет вам перечислять, создавать , переименовывать и удалять ветви.
Чтобы удалить локальную ветку Git, вызовите команду git branch с опцией -d ( --delete ), за которой укажите имя ветки:
git branch -d branch_name
Deleted branch branch_name (was 17d9aa0).
Если вы попытаетесь удалить ветку, в которой есть необъединенные изменения, вы получите следующее сообщение об ошибке:
error: The branch 'branch_name' is not fully merged. If you are sure you want to delete it, run 'git branch -D branch_name'.
Как видно из сообщения выше, для принудительного удаления ветки используйте опцию -D , которая является сокращением для --delete --force :
git branch -D branch_name
Обратите внимание: если вы удалите необъединенную ветку, вы потеряете все изменения в этой ветке.
Чтобы вывести список всех веток, содержащих необъединенные изменения, используйте команду git branch --no-merged .
Если вы попытаетесь удалить текущую ветку, вы получите следующее сообщение:
error: Cannot delete branch 'branch_name' checked out at '/path/to/repository'
Вы не можете удалить ветку, на которой находитесь. Сначала переключитесь на другую ветку и удалите branch_name :
git checkout mastergit branch -d branch_name
Удалить удаленную ветку Git
В Git локальные и удалённые ветки — это отдельные объекты. Удаление локальной ветки не удаляет удалённую ветку.
Чтобы удалить удаленную ветку, используйте команду git push с опцией -d ( --delete ):
git push remote_name --delete branch_name
Где remote_name обычно является origin :
git push origin --delete branch_name
... - [deleted] branch_name
Есть также альтернативная команда для удаления удаленной ветки, которую, по крайней мере мне, сложнее запомнить:
git push origin remote_name :branch_name
Если вы работаете над проектом с группой людей и пытаетесь удалить удаленную ветку, которая уже удалена кем-то другим, вы получите следующее сообщение об ошибке:
error: unable to push to unqualified destination: branch_name The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@example.com:/my_repo'
В подобных ситуациях вам необходимо синхронизировать список филиалов с:
git fetch -p
Параметр -p сообщает Git о необходимости удалить все ссылки удаленного отслеживания, которые больше не существуют в удаленном репозитории, перед извлечением.
Заключение
Мы показали вам, как удалять локальные и удалённые ветки Git. Ветки — это, по сути, ссылки на снимок ваших изменений и имеют короткий жизненный цикл. После слияния ветки с мастер-версией (или другой основной веткой) она больше не нужна и должна быть удалена.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
Связанные руководства