См., branchName
должно быть полностью разрешено, прежде чем GIT сможет его идентифицировать. Полностью разрешенное имя будет refs/heads/branchName
.
Одна из известных команд git checkout branchName
фактически автоматически разрешает ее полностью, чтобы определить, где вы хотите оформить заказ. Обратите внимание, что он делает это автоматически, поэтому мы никогда не пишем его полностью самостоятельно.
Как это сделать?
Давайте посмотрим здесь
refname : например, master
, heads/master
, refs/heads/master
Символическое имя ссылки. Например. master обычно означает объект commit
ссылка на refs/heads/master
. Если у вас есть оба
heads/master
и tags/master
, вы можете явно сказать heads/master
скажи Гиту, кого ты имеешь в виду. Когда неоднозначно, <refname>
устранение неоднозначности, принимая первый матч по следующим правилам:
1.Если $GIT_DIR/<refname>
существует, это то, что вы имеете в виду (обычно это полезно только для HEAD
, FETCH_HEAD
, ORIG_HEAD
, MERGE_HEAD
и
CHERRY_PICK_HEAD
);
2. Иначе, refs/<refname>
, если он существует;
3. Иначе, refs/tags/<refname>
, если он существует;
4. Иначе, refs/heads/<refname>
, если он существует;
5. Иначе, refs/remotes/<refname>
, если он существует;
6. Иначе, refs/remotes/<refname>/HEAD
, если он существует.
Таким образом, выше 6 шагов, он пытается выяснить, что это такое branchName
. Следовательно, нам никогда не нужно давать ему полностью разрешенное имя_в ветви.
Смотрите здесь и здесь тоже.
Кроме того, перейдите в каталог .git
и загляните внутрь папки ref
.