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

12 set 2022 2 min di lettura
Как удалить (удалить) локальную и удаленную ветку Git в Linux
Indice dei contenuti

Введение

Ветки являются частью ежедневного процесса разработки и одной из самых мощных функций 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 master
git 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 '[email protected]:/my_repo'

В подобных ситуациях вам потребуется синхронизировать список веток с:

git fetch -p

Параметр -p указывает Git удалить все ссылки на удаленное отслеживание, которые больше не существуют в удаленном репозитории, перед извлечением.

Вывод

В этом руководстве вы узнали, как удалять локальные и удаленные ветки Git. Ветки в основном являются ссылкой на моментальный снимок изменений и имеют короткий жизненный цикл. Как только ветвь объединена с мастером (или другой основной ветвью), она больше не нужна и должна быть удалена.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.