Я побежал git branch -a
* master
remotes/origin/test
remotes/origin/master
Я хочу удалить свою удаленную ветку
я пробовал
git push origin --delete remotes/origin/test
я получил
ошибка: невозможно удалить «remotes / origin / test»: удаленная ссылка не существует
Как его не существует?
Я сделал git branch -a
и увидел это в списке.
Я что-нибудь пропустил?
git branch -a
отобразит ветки на вашем локальном компьютере, а не на вашем удаленном. Правильно?Ответы:
Команда
git branch -a
показывает удаленные ветки, существующие в вашем локальном репозитории . Это может показаться немного запутанным, но чтобы понять это, вы должны понимать, что существует разница между удаленной веткой и веткой, которая существует в удаленном репозитории. Удаленные ветки - это локальные ветки, которые сопоставляются с ветвями удаленного репозитория. Таким образом, набор удаленных ветвей представляет состояние удаленного репозитория.Обычный способ обновить список удаленных веток - использовать
git fetch
. Это автоматически получает обновленный список ветвей с удаленного устройства и настраивает удаленные ветки в локальном репозитории, а также извлекает любые объекты фиксации, которые могут отсутствовать.Однако по умолчанию
git fetch
не удаляет удаленные ветки, у которых больше нет ветки на удаленном компьютере. Для этого вам необходимо явно сократить список удаленных веток:Это автоматически избавит от удаленных веток, которых больше нет на пульте. После
git branch -r
этого вы увидите обновленный список веток, которые действительно существуют на пульте дистанционного управления: и те, которые вы можете удалить с помощьюgit push
.При этом, чтобы использовать
git push --delete
, вам нужно указать имя ветки в удаленном репозитории; не имя вашей удаленной ветки. Итак, чтобы удалить веткуtest
(представленную вашей удаленной веткойorigin/test
), вы должны использоватьgit push origin --delete test
.источник
git branch -r | grep "origin"
поможет с большими проектами, в которых используется форкremotes/origin/
. Или оба.Смысл в
remotes/origin/test
том, что у вас есть ветка, вызываемаяtest
на удаленном сервереorigin
. Итак, команда будетисточник
Есть ярлык для удаления ветки в источнике:
git push origin :<branch_name>
Это то же самое, что и
git push origin --delete <branch_name>
источник
источник
git push origin --delete yourBranch
источник
Учитывая, что удаленная ветка - remotes / origin / test, вы можете использовать два способа:
и
источник
Я последовал решению путем тыкания с незначительной корректировкой в конце. Мои шаги следуют
-
git fetch --prune
;-
git branch -a
печать следующегоmaster
branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/branch
(удаленная ветка для удаления)-
git push origin --delete branch
.Здесь удаляемая ветка не называется, а
remotes/origin/branch
простоbranch
. И ветка удаляется.источник
origin/branch
хотя должно бытьbranch
.git branch -a
будет перечислять ветки в вашем локальном, а не в удаленном.И ошибка
error: unable to delete 'remotes/origin/test': remote ref does not exist
означает, что у вас нет ветки с таким именем на вашем удаленном компьютере, но ветка существует в вашем локальном.источник
Удобный однострочный инструмент для удаления веток, отличных от master, из источника:
Убедитесь, что вы понимаете последствия этого, прежде чем делать это!
источник
Для меня это сработало $ ▶ git branch -D -r origin / mybranch
подробности
$ ▶ git branch -a | grep mybranch пульты / происхождение / mybranch
$ ▶ git branch -r | grep mybranch origin / mybranch
$ ▶ git branch develop * функция / предварительное развертывание
$ ▶ git push origin --delete mybranch error: невозможно удалить mybranch: удаленная ссылка не существует ошибка: не удалось отправить некоторые ссылки на 'git@10.102.100.38: config / myrepo.git'
$ ▶ git branch -D -r origin / mybranch Удалена удаленная ветка origin / mybranch (было 62c7421).
$ ▶ git branch -a | grep mybranch
$ ▶ git branch -r | grep mybranch
источник
тоже должно работать
источник