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

Опубликовано: 1 Сентября, 2022

Репозиторий git обычно имеет разные ветки. Это хороший способ работать над различными функциями и исправлениями, изолируя новый код от основной кодовой базы. Репозитории часто имеют основную ветку или основную ветку для основной кодовой базы, а разработчики создают другие ветки с именами по своему выбору (или в соответствии с требованиями организации) для работы над различными функциями или исправлениями. В большинстве случаев вам может потребоваться удалить ветку git из-за некоторых необратимых изменений, проблем с безопасностью или когда была создана определенная функция связанного проекта. В большинстве случаев просто удалить ветку git. В этой статье я проведу вас через весь процесс безопасного удаления ветки git. Для начала я уже создал новую ветку в своем репо, используя:

git checkout -b <branch-name> 

Здесь <branch-name> — test. Чтобы проверить, какая ветвь является текущей, вы можете использовать команду git branch.

а ниже приведен снимок моего репозитория Github с тестовой веткой на удалении.

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

Git не позволит вам удалить ветку, над которой вы сейчас работаете. Таким образом, вы должны убедиться, что переходите в ветку, которую вы НЕ удаляете . Для этого используйте команду:

git checkout <branch-name>

Здесь мы проверим нашу основную ветку из моей тестовой ветки.

Теперь, чтобы локально удалить тестовую ветку, мы используем команду:

git branch -d <branch-name>

Мы удалим мою тестовую ветку в качестве примера.

Примечание. Параметр -d удалит ветку, только если она уже была отправлена и объединена с удаленной веткой. Если вы хотите принудительно удалить ветку, вам придется вместо этого использовать параметр -D. Флаг -D является синонимом --delete --force. Это принудительно удалит ветку, даже если она не была отправлена или объединена с удаленным. полная команда:

git branch -D <branch-name>

При этом мы можем успешно удалить локальную ветку.

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

Вы не можете использовать команду git branch для удаления удаленной ветки. Вместо этого вы должны использовать команду git push с флагом –delete, за которым следует имя ветки, которую мы хотим удалить. Вам также необходимо указать удаленное имя (в данном случае источник) после «git push». Команда выглядит следующим образом:

git push <remote-name> --delete <branch-name>

Здесь я удалю свою тестовую ветку в своем удаленном репозитории, как показано ниже.

Эта команда удалит ветку удаленно. Вы также можете использовать сокращение:

git push <remote-name> :<branch-name>

Как видите, моей удаленной ветки больше нет в моем репозитории GitHub:

Таким образом, мы успешно удалили нашу удаленную ветку. Распространенная ошибка, с которой сталкиваются многие на этом этапе:

error: unable to push to unqualified destination: remoteBranchName 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@repository_name’

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

git fetch -p

Флаг -p здесь означает «обрезать». После извлечения веток, которые больше не существуют в удаленной среде, они будут удалены в вашей локальной рабочей среде.