В моем текущем репо у меня есть следующий вывод:
$ git branch -a
* master
remotes/origin/master
remotes/public/master
Я хочу удалить remotes/public/master
из списка веток:
$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.
Кроме того, вывод git remote
является странным, так как он не перечисляет public
:
$ git remote show
origin
Как я могу удалить 'remotes / public / master' из списка веток?
Обновление, попробовал git push
команду:
$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
git
branch
remote-branch
cmcginty
источник
источник
git remote prune [remote-name]
илиgit fetch -p [remote-name]
нет по вашему сценарию? Делать этоgit gc
намного эффективнее, чем обычно требуется.git remote prune [remote-name]
не будет работать с GIT SVN, хотя и неgit gc
...git branch -rd origin/name
хотя работает. @Casey, вам, вероятно, следует выбрать второй ответ - это немного менее опасно.master
... особенно при удалении с пульта.Ответы:
Возможно, вам нужна очистка:
или вам может понадобиться чернослив:
Тем не менее, кажется, что они должны были быть очищены ранее с
Возможно, вы вручную отредактировали свой конфигурационный файл, но этого не произошло, или у вас есть проблемы с привилегиями.
Может быть, запустите это снова и посмотрите, что произойдет.
Контекст консультации
Если вы посмотрите журналы ревизий , вы заметите, что я предложил более «правильные» методы, которые по какой-то причине не хотели работать с их хранилищем.
Я подозревал, что ОП сделал что-то, что оставило их дерево в непоследовательном состоянии, что заставило его вести себя немного странно, и ему
git gc
было необходимо починить оставленную за спиной крошку.Обычно этого
git branch -rd origin/badbranch
достаточно для уничтожения локальной ветви отслеживания илиgit push origin :badbranch
для удаления удаленной ветви, и обычно вам никогда не потребуется звонитьgit gc
источник
git gc
здесь не нужен, ноgit remote prune
заставляет меня чувствовать себя безопаснее, чем удалять вручнуюgit branch -rd
, поскольку git проверяет, какие удаленные ветки сделаны.Все, что вам нужно сделать, это
Это удалит все ваши локальные ветви, которые удалены удаленно.
Если вы используете git 1.8.5+, вы можете установить это автоматически
или
источник
Это приведет к удалению удаленной ветви,
master
на которую указал Кент Фредрик.Для просмотра веток удаленного отслеживания:
Чтобы удалить ветку удаленного отслеживания:
источник
git branch -rd removed_remote/branch
работал для меня, в то времяgit gc --prune=now
как ничего не стоило.git prune
без каких-либо проблем, но мой коллега, который разветвлял наше основное хранилище ** ТОЛЬКО МОЖЕТ **, используетgit branch -rd public/master
решение -style, чтобы очистить его среду.git branch -rd public/master
было то, что мне не хватало. У меня былоheroku/master
иherkou/master
... LOL WoopsВсе, что вам нужно сделать, это
Это так просто. Там нет причин для вызова здесь.
источник
git branch -rd $(git branch -r)
затем восстановить действительные, выполнив выборку.git config -e
чтобы переименовать мой пульт. Я переименовал пультmine
вorigin
. Тогда это было решение, которое лучше всего сработало для меня:git branch -rd $(git branch -r | grep 'mine/')
git gc --prune=now
это не то, что вы хотите.или
git remote prune origin
# если это удаленный источникэто то, что вы хотите
источник
Принятый ответ не работал для меня, когда ссылка была упакована. Это делает однако:
источник
В моем случае я пытался удалить записи, которые были сохранены в
.git/packed-refs
. Вы можете редактировать этот простой текстовый файл и удалять из него записи, которыеgit br -D
не знают, как их трогать (по крайней мере, в версии 1.7.9.5).Я нашел это решение здесь: https://stackoverflow.com/a/11050880/1695680
источник
git gc
, когда он упаковывает ваши коммиты в сильно сжатый архив, он также перемещает ссылки в один простой текстовый файл, возможно, в целях оптимизации; Я надеюсь, что будущие версии Git могутgit br -D ...
упакованы ссылки.Ссылка от: http://www.gitguys.com/topics/adding-and-removing-remote-branches/
источник
Я не знал об этом
git branch -rd
, поэтому способ решения подобных проблем для меня заключается в том, чтобы относиться к своему репо как к удаленному репо и выполнять удаленное удаление.git push . :refs/remotes/public/master
, Если другие способы не работают, и у вас есть какая-то странная рекомендация, от которой вы хотите избавиться, этот грубый способ верен. Это дает вам точную точность для удаления (или создания!) Любого вида ссылки.источник
Только немного связанные, но все же могут быть полезны в той же ситуации, что и у нас - мы используем сетевой общий файловый ресурс для нашего удаленного хранилища. На прошлой неделе все работало, на этой неделе мы получили сообщение об ошибке: «Удаленный источник не афиширует Ref для ссылки ref / заголовки / master. Этот Ref может не существовать в удаленном или может быть скрыт настройками разрешений»
Но мы верили, что ничего не было сделано, чтобы развратить вещи. NFS делает снимки, поэтому я просмотрел каждую «предыдущую версию» и увидел, что три дня назад размер хранилища в МБ изменился с 282 МБ до 33 МБ, и теперь существует около 1403 новых файлов и 300 папок. Я обратился к своим сотрудникам, и один из них попытался сделать толчок в тот день, а затем отменил его.
Я использовал функциональность NFS «Восстановить», чтобы восстановить его до этой даты, и теперь все снова работает нормально. Я пробовал чернослив ранее, похоже, не помогло. Может быть, более жесткие очистки сработали бы.
Надеюсь, что это может помочь кому-то еще однажды!
сойка
источник
У меня была аналогичная проблема. Ни один из ответов не помог. В моем случае у меня было два удаленных удаленных хранилища, которые показывались постоянно.
Моей последней идеей было удалить все ссылки на него вручную.
Допустим, хранилище называется «Репо». Я сделал:
Поэтому я удалил соответствующие файлы и каталоги из папки .git ( эту папку можно найти в вашем приложении Rails или на вашем компьютере https://stackoverflow.com/a/19538763/6638513 ).
Тогда я сделал:
Это нашло несколько текстовых файлов, в которых я удалил соответствующие строки. Теперь все вроде бы хорошо.
Обычно вы должны оставить эту работу для мерзавца.
источник