ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

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

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

Exit mobile version