Одна из возможных причин для этого заключается в том, что если удаленная ветка (например, origin/myBranch
) все еще существует, то git checkout myBranch
преуспеет в качестве альтернативы git checkout -b myBranch origin/myBranch
. Это предназначено для удобства для обычного случая проверки удаленной ветви в первый раз, создавая локальную ветвь отслеживания с одинаковым именем.
Есть и другие возможности, в зависимости от того, что именно вы используете для завершения, но это одна из первых вещей, которые я проверил. Если вы запустите git branch -a
, и есть origin/myBranch
(или один для удаленного, кроме origin
, если у вас есть такой), то это вероятный преступник.
Действительно ли 'git branch -a' все еще перечисляет либо' myBranch', либо 'origin/myBranch'? Обратите внимание, что даже если 'myBranch' не существует,' git checkout myBranch' по-прежнему является допустимым ярлыком для 'git checkout -b myBranch origin/myBranch', если существует' origin/myBranch'. – twalberg
@twalberg стоит опубликовать в качестве ответа. – cmbuckley