Ответ 1
Я видел нечто подобное, когда в исходном дереве есть мастер папки. К сожалению, я не нашел способ сообщить git интерпретировать значение как ветвь. Переименование папки исправило проблему для меня.
tl; dr: git checkout master
не переключается на мастер-ветку, не дает никакой ошибки или никакого вывода вообще, и я не знаю, почему. Любая другая ветка работает нормально.
У меня есть репозиторий git, который состоит из ветвей development
и master
. Я делаю новый клон репозитория, проверяя ветвь development
по умолчанию.
$ git clone <REPO-URL> --branch development
$ git branch -a
* development
origin/HEAD -> origin/development
origin/development
origin/master
$ git show-ref
656c781c2affc26792f857baf8e232de07101535 refs/heads/development
656c781c2affc26792f857baf8e232de07101535 refs/remotes/origin/HEAD
656c781c2affc26792f857baf8e232de07101535 refs/remotes/origin/development
cfee1a1761642453edf5d001565f23b50243ff09 refs/remotes/origin/master
Мастер ссылок указывает на правильность, что фиксация существует и является последней фиксацией моей главной ветки.
Пока все выглядит нормально, но когда я пытаюсь переключиться на мастер, это происходит:
$ git checkout master
$ git branch
* development
Нет сообщений из проверки, нет ошибки, ничего, и ветка не переключается.
Вещи, которые я пробовал до сих пор:
master2
из того же commit = > checkout отлично работает.git checkout -b master --track origin/master
= > работает, но я думаю, что нет необходимости использовать эту команду, поскольку это то, что git checkout master
должно делать автоматическиЛюбые другие идеи? Что мне не хватает? Является ли мой репозиторий сломанным? Как я могу это исправить?
Я видел нечто подобное, когда в исходном дереве есть мастер папки. К сожалению, я не нашел способ сообщить git интерпретировать значение как ветвь. Переименование папки исправило проблему для меня.
Если у вашего репо есть папка или имя файла так же, как имя ветки, вам необходимо: git checkout xyz --
с дополнительным --
в конце. Он сообщает git использовать ветку или commit вместо того, чтобы пытаться использовать имя папки/файла.
Найден ответ в другой записи stackoverflow: Git изменить ветку, когда присутствует файл с таким же именем
Локальная главная ветвь в вашем репозитории не отличается от любой другой локальной ветки вашего репо. Вы клонировали свой репозиторий в свою ветку развития, которая является единственным локальным филиалом, который у вас есть. Таким образом, если вы попытаетесь проверить свою локальную ведущую ветвь, git говорит, что ее не существует.
Если вы хотите, чтобы начальная и начальная локальная ветвь была первоначально одинаковой, вы можете сделать одну из следующих вещей:
Загрузите репо, чтобы овладеть веткой, и создайте локальную ветвь разработки:
git clone <repo_url>
git checkout -b development
или загрузите свое репо в ветку разработки и создайте локальную ветвь мастера:
git clone <REPO-URL> --branch development
git checkout -b master