[Я бежал]
git checkout -b 'test'
Мне не понятно, почему вы помещаете test
в одинарные кавычки здесь. Если ваш интерпретатор командной строки (например, bash) удаляет одинарные кавычки, все в порядке. Если это не (например, cmd.exe
, по-видимому), вы получите ветку, имя которой буквально 'test'
, , включая символы одинарных кавычек .
Чтобы использовать это имя ветки, вам придется продолжать заключать его в кавычки:
git switch 'test'
, потому что имя ветки буквально 'test'
, а не test
.
General совет
Как правило, если у вас Git 2.23 или более поздняя версия, используйте новые команды (git switch
и git restore
) вместо старых (git checkout
). Старая все еще работает, но может вызывать путаницу.
В частности, старая команда git checkout
может выполнять несколько различных заданий, в зависимости от того, какой аргумент (ы) вы ей даете:
Пока все в порядке. Но старая команда git checkout
имеет то, что я считаю довольно большим недостатком. Если вы запустите:
git checkout xyzzy
, а xyzzy
- это , а не ответвление name, git checkout
рассмотрит попытку, как если бы вы запустили:
git checkout -- xyzzy
, который обрабатывает xyzzy
как имя файла (или путь) и пытается извлечь файл xyzzy
или xyzzy/*
из индекса. Следовательно, если у вас нет ветки с именем test
, но do есть файл с именем test
или целая куча файлов, имена которых все Начните с test/
, git checkout
не будет жаловаться на отсутствие ветки test
.
Используя git switch
, вы получите жалобу. Вы не случайно получите git restore
поведение от git checkout
.
Я думаю, что это происходит в вашем случае: у вас есть файл или папка с именем test
и ветвь с именем 'test'
(с одинарными кавычками), и вам нужно Git восстановить файл с именем test
вместо переключиться на ветку с именем 'test'
.