Как удалить удаленные имена ветвей из автозаполнения?
Я использовал git branch -d myBranch
для удаления ветки. Однако, когда я нахожусь на хозяине и пытаюсь проверить новую ветку с git checkout
, myBranch
все еще появляется в вкладке-автозаполнении.
Как удалить имя myBranch
из tab-autocomplete для git checkout
?
Ответы
Ответ 1
Одна из возможных причин этого заключается в том, что если удаленная ветвь (например, origin/myBranch
) все еще существует, то git checkout myBranch
будет успешной в качестве альтернативы git checkout -b myBranch origin/myBranch
. Это предназначено в качестве удобства для обычного случая проверки удаленной ветки в первый раз, создавая локальную ветвь отслеживания с одинаковым именем.
Существуют и другие возможности, в зависимости от того, что именно вы используете для завершения, но это одна из первых вещей, которые я проверял. Если вы запустите git branch -a
и указана origin/myBranch
(или одна для удаленного, отличного от origin
, если у вас есть), то это может быть виновным.
Ответ 2
git fetch --prune --all
Проводя это как свой собственный ответ, так как это однострочное исправление, но если вы голосуете, обязательно проголосуйте за @twalberg ответ выше.
@twalberg предложение git branch -a
привело меня на правильный путь; мой коллега предложил git fetch --prune --all
обрезать все мертвые ветки со всех пультов, что полезно при работе с большим количеством разработчиков с большим количеством вилок.
Ответ 3
Возможно, это не будет git, что ваша оболочка завершает команду, так как вы ее использовали раньше.
Вы можете взглянуть на свою историю, набрав history
или отредактировав ~/.bash_history
. Вы можете редактировать свою историю из файла ~/.bash_history
, или вы можете ввести history
, затем введите номер строки с git checkout myBranch
, а затем используйте history -d {line number here}
. В крайнем случае вы можете использовать команду history -c
, чтобы полностью уничтожить историю.