Ветви являются частью повседневного процесса разработки и одной из самых мощных функций в Git. После слияния ветвь не имеет смысла, кроме исторических исследований. Распространенной рекомендуемой практикой является удаление ветви после успешного слияния.
В этой статье рассказывается, как удалять локальные и удаленные ветви Git.
Удалить локальную ветку Git
Чтобы удалить локальную ветку 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. Ветви – это, по сути, ссылка на снимок ваших изменений и короткий жизненный цикл. Как только ветвь объединена с главной (или другой основной ветвью), она больше не нужна и должна быть удалена.
Если вы столкнулись с проблемой или у вас есть отзыв, оставьте комментарий ниже.