2013-05-28 5 views
25
$ git branch 
    develop 
* feature/bug_76 
    master 
$ git branch -r 
    origin/HEAD -> origin/master 
    origin/develop 
    origin/feature/implement_IBResponder 
    origin/master 
    origin/origin 
    origin/sculptor_strategy 

Локально, я хороший. Я хочу, чтобы удалить все CRUD по происхождению, так что я стараюсь:Как исправить устаревшую ветвь git -r (удалить фантомные ветки гита)?

$ git push origin :origin/sculptor_strategy 
error: unable to delete 'origin/sculptor_strategy': remote ref does not exist 
error: failed to push some refs to '[email protected]:pitbull.git' 

Что я делаю неправильно?

(Wild Guess) Является ли некоторый локальный кэш того, что происходит в оригинале?

ОТВЕТ

Оказалось, что красно-селедка - проблема была, мой локальный кэш был затхлым, как я подозревал. Оба ответа ниже будут работать нормально.

+5

Вы пробовали «git push origin: sculptor_strategy'? – ConcurrentHashMap

+0

y для обоих - то же сообщение об ошибке: 'remote ref не существует' – kfmfe04

+1

Релевантно: http://stackoverflow.com/questions/14382999/so-many-unused-branches-how-to-cleanup/14384603#14384603 – mvp

ответ

35

Возможно, вы не выбрали опцию чернослива. Использование: git fetch --prune.

21

Использование:

git remote prune origin 

уронить ссылки, которые уже удалены удаленно. Или:

git fetch -p origin 

, который делает то же самое, или:.

git remote update --prune 

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

+0

'git remote prune origin' сделал трюк для меня, спасибо :) – Simon

Смежные вопросы