Как удалить ветку в GIT (локальную или удалённую)
Вам когда-нибудь приходилось создавать промежуточную ветку в ГИТ, чтобы сохранить изменения, а после определённых действий, надобность в этой ветке пропадала? Так бывает очень часто, когда, либо создаёшь временную ветку, чтобы переместить коммиты в другую, либо ветка была создана по ошибке. И в этой статье я покажу несколько советов, как удалить локальную ветку GIT, и как удалить удалённую ветку.
Удаление локальной ветки GIT
Чтобы удалить локальную ветку GIT, вы можете выполнить одну из следующих команд:
git branch -d branch_name
git branch -D branch_name
Как вы можете заметить, эти команды, в разных вариациях использования, имеют 2 разных аргумента, d
и D
.
Параметр -d
означает --delete
, который удалит локальную ветвь, только в случае, если вы смерджили её с какой-то из веток.
Опция -D
обозначает --delete --force
, которая удаляет ветку независимо от ее статуса push или merge, так что будьте осторожны при её использовании!
Удаление удалённой ветки GIT
Для того, чтобы удалить ветку, уже опубликованную в удалённом репозитории (например, в Bitbucket, GitHub, GitLab), вы можете использовать следующую команду:
git push <remote_repository_name> --delete <branch_name>
Или же, есть ещё одна опция, которую, возможно, будет немного сложнее запомнить:
git push <remote_repository_name> :<branch_name>
Эти основные параметры также могут быть использованы, если вы хотите удалить "тег".
В большинстве случае использования, в качестве remote_branch_name используется origin.
К примеру, код будет выглядеть так:git push origin --delete tests
В некоторых случаях бывает, что при попытке выполнить запрос на удаление ветки, получаем ошибку fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository
.
Это значит, что мы вводим неправильное имя удалённой ветки.
Это имя задаётся при добавлении удалённого репозитория к себе в проект. К примеру, выполняя эту команду на добавления удалённого репозитория он будет сохранён под именем origin:
git remote add origin https://github.com/truehero/test.git
Но этот же репозиторий мы можем сохранить под любым другим именем, к примеру, выполнив команду:
git remote add test_project https://github.com/truehero/test.git
Уже сможем обращаться к этому репозиторию по имени test_project.
Потому, чтобы избавиться от этой ошибки, достаточно либо сохранить этот репозиторий под именем origin, либо обращаться к этому репозиторию по его реальному имени.
Если вы получили такую ошибку, но не помните, какое имя вы присваивали этому репозиторию, выполните команду: git remote
, которая покажет список актуальных удалённых репозиториев и их имена.
Или же, если вы используете PHPStorm для работы, можете зайти во вкладку меню VCS > Git > Remotes
, где сможете увидеть список всех удалённых репозиториев:
И тут вы и можете подсмотреть имя, которое нужно для обращений к репозиторию. К примеру, как показано у меня на скрине, у меня один репозиторий, который имеет имя tests
, потому для удаления ветки в этом репозитории нужно выполнить команду
git push tests --delete useless-branch
Добавить коммиты на удаленную ветку и сразу удалить ветку локально
Если вам когда-нибудь станет необходимость перенести свою локальную ветку в удалённый репозиторий, после чего, удалить локальную, вы можете использовать команду git push
с опцией -d в качестве псевдонима для --delete.
Если вы регулярно пользуетесь GIT-ом, то я рекомендую купить себе книгу Pro Git и поставить её себе на стол, как библию по ГИТ-у.
Резюме
В этой статье я рассказал и привёл примеры, как удалить ветку в репозитории гит. Как оказалось, удаление локальной ветки и удалённой в GIT немного отличается. Потому, я подробно остановится на этом, и показал на реальном примере, как удалить ветку в github, gitlab, или bitbucket, а так же, показал, как избежать некоторых ошибок при работе с удалённым репозиторием. Я вас категорически поздравляю, потому что теперь вы умеете удалять ветки на git не только локально, но и на удалённом сервере.
При удалении ветки все данные с неё стираются, будьте особо внимательны при удалении данных с ГИТ-а.