2015-10-18 2 views
0

Я пытаюсь удалить несколько веток из моего проекта:Удаленные ветви после «мерзавцем выборки -p»

leo:Project leo$ git push origin --delete effects 
To https://github.com/gituser/Project.git 
- [deleted]   effects 
leo:Project leo$ git push origin --delete viewport 
To https://github.com/gituser/Project.git 
- [deleted]   viewport 

Но после того, как fetch --prune, что говорит

После извлечения, удалите все ссылки удаленного отслеживания, что не более есть на пульте дистанционного управления.

Я до сих пор удалены ветви на локальной машине:

leo:Project leo$ git fetch -p 
leo:Project leo$ git branch -a 
    develop 
    effects 
* master 
    viewport 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/develop 
    remotes/origin/master 

Любые предложения?

+0

Возможно, вам нужно позвонить 'git branch --set-upstream-to = origin/master master'? – d33tah

+0

Эффекты и область просмотра - это локальные ветви, которые не удаляются с помощью git fetch prune. – MrTux

+0

@MrTux я могу проверить, что в ветке нет удаленных ссылок на отслеживание? – Leo

ответ

5

Команда выполнила именно то, что она сказала, и удалила ссылку на удаленное отслеживание. Это означает, что любая локальная ветвь, подключенная к ветке в удаленном репозитории, отключается, и ничего больше. Это означает, в частности, что локальная ветка все еще существует.

Чтобы удалить ветку, используйте git branch -D <branchname>, возможно, убедитесь, что вы не потеряли никаких коммитов, сначала просмотрев содержимое ветки.

1

git fetch --prune удаляет удаленно удаленные удаленные ссылки в рабочем дереве. Удаленные ссылки расположены под remotes/* (например, remotes/origin/master).

git fetch --prune не удаляет локальные ветви - даже если локальная ветвь отслеживает удаленную ссылку, она не удаляется (например, путем установки git branch --set-upstream-to=origin/master master). Это предназначено. Представьте, что у вас есть локальный филиал с некоторыми коммитами, а затем кто-то удаляет удаленную ветку, и ваши локальные изменения исчезли.

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

+0

@Leo: Почему вы изменили принятый ответ? – MrTux

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