Удалить ветку Git локально и удаленно
Репозиторий 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 здесь означает «обрезать». После извлечения веток, которые больше не существуют в удаленной среде, они будут удалены в вашей локальной рабочей среде.