Раньше git branch -d myBranch
удалял ветку. Однако, когда я нахожусь в мастере и пытаюсь оформить новую ветку с git checkout
, myBranch
все еще появляется во вкладке автозаполнения.
Как мне удалить имя myBranch
из tab-autocomplete для git checkout
?
git branch -a
еще перечислено либоmyBranch
илиorigin/myBranch
? Обратите внимание, что, даже еслиmyBranch
он не существует,git checkout myBranch
по-прежнему является допустимым ярлыком,git checkout -b myBranch origin/myBranch
еслиorigin/myBranch
существует.Ответы:
Одна из возможных причин этого заключается в том, что, если удаленная ветка (например
origin/myBranch
) все еще существует, онаgit checkout myBranch
будет успешной в качестве альтернативыgit checkout -b myBranch origin/myBranch
. Это предназначено для удобства общего случая первой проверки удаленной ветви, создавая локальную ветвь отслеживания с идентичным именем.Есть и другие возможности, в зависимости от того, что именно вы используете для завершения, но это одна из первых вещей, которые я проверю. Если вы запустите
git branch -a
, и естьorigin/myBranch
список (или один для удаленного, кромеorigin
, если он у вас есть), то это вероятный виновник.источник
origin/myBranch
все еще существует. Если я удалюmyBranch
ветку на Github (через онлайн-интерфейс), безопасно ли мне позвонить,git branch -d origin/myBranch
чтобы удалить эту удаленную ветку?git fetch --prune origin
. Это очистит все локальные ветки отслеживания, которые больше не существуют на удаленном компьютере.git fetch --prune origin
локальные ссылки на удаленные ветки исчезли при автозаполнении. Было бы неплохо переместить это из комментария в ответ. В любом случае спасибо за ваш ответ, так как он мне помог!git branch -a
повел меня на верный путь; мой коллега предложилgit fetch --prune --all
обрезать все мертвые ветки со всех пультов, что полезно при работе с большим количеством разработчиков с большим количеством вилок.git fetch --prune --all
Публикация этого как собственного ответа, поскольку это однострочное исправление, но если вы проголосуете, обязательно проголосуйте за ответ @ twalberg выше.
Предложение @ twalberg
git branch -a
привело меня на верный путь; мой коллега предложилgit fetch --prune --all
обрезать все мертвые ветки со всех пультов, что полезно при работе с большим количеством разработчиков с большим количеством вилок.источник