Error: pathspec 'test-branch' не соответствует ни одному файлу, известному git
Я новый пользователь Git. Я разветкил хранилище под названием "Ложка-нож" (доступно для тренировки с помощью Git). Затем я клонировал его локально, запустив
git clone https://github.com/rohinichoudhary/Spoon-Knife.git
Этот репозиторий содержит три ветки, то есть
-
master
,
-
test-branch
,
-
change-the-title
.
Когда я запускаю git branch
, он показывает только *master
, а не остальные две ветки. И когда я запустил
git checkout test-branch
Я получаю следующую ошибку:
error: pathspec 'test-branch' не соответствует ни одному файлу, известному Git.
Почему это происходит? Как я могу решить эту проблему?
Ответы
Ответ 1
Когда я запускаю git branch
, он показывает только *master
, а не остальные две ветки.
git branch
не перечисляет test_branch
, потому что такой локальной ветки не существует в вашем локальном репо. При клонировании репо создается только одна локальная ветвь (master
здесь) и выдается в результирующем клоне, независимо от количества ветвей, существующих в удаленном репо, с которого вы клонировали. На этом этапе test_branch
существует только в вашем репо, как ветвь удаленного отслеживания, а не как локальная ветвь.
И когда я запускаю
git checkout test-branch
Я получаю следующую ошибку: [...]
Вы должны использовать "старую" версию Git. В более поздних версиях (от версии v1.7.0-rc0 и далее),
Если <branch>
не найден, но существует ветвь отслеживания в точно один удаленный (назовите его <remote>
) с соответствующим именем, обработайте [git checkout <branch>
] как эквивалентно
$ git checkout -b <branch> --track <remote>/<branch>
Просто запустите
git checkout -b test_branch --track origin/test_branch
вместо этого. Или обновите до более поздней версии Git.
Ответ 2
Вы также можете получить эту ошибку с любой версией git, если удаленная ветка была создана после вашего последнего клона/выборки, и ваше местное репо еще не знает об этом. Я решил это, выполнив сначала git fetch
, который "сообщает" вашему местному репо обо всех удаленных ветвях.
git fetch
git checkout test-branch
Ответ 3
Друг, вам нужно сначала создать эти соответствующие ветки локально, чтобы проверить эти две ветки, используя эту строку кода
git branch test-branch
и
git branch change-the-title
тогда вы сможете сделать git checkout для этих ветвей
Также после создания каждой ветки, вносите последние изменения этих ветвей с помощью git pull origin branch_name, как показано ниже в коде
git branch test-branch
git checkout test-branch
git pull origin test-branch
а для другой ветки с именем change-the-title выполните следующий код = >
git branch change-the-title
git checkout change-the-title
git pull origin change-the-title
Счастливое программирование:)
Ответ 4
Современный Git должен иметь возможность обнаруживать удаленные ветки и создавать локальный при проверке.
Однако, если вы сделали мелкий клон (например, с помощью --depth 1
), попробуйте выполнить следующие команды для его исправления:
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
git fetch --all
и попробуйте снова проверить ветвь.
Альтернативно попробуйте отключить ваш клон, например. git fetch --unshallow
и повторите попытку.
См. также: Как получить все удаленные ветки?
Ответ 5
просто выполните три шага, проблема с ветвями git будет решена.
git remote update
git fetch
git checkout --track origin/test-branch
Ответ 6
Эта ошибка также может появиться, если ваша ветка git неверна, даже если она чувствительна к регистру.
В моем случае я получал эту ошибку, поскольку фактическое название ветки было "CORE-something", но я принимал притяжение, как "core-something".
Ответ 7
Решение:
Чтобы исправить это, вам нужно сначала выбрать
$ git fetch origin
$ git rebase origin/master
Текущий мастер ветвей обновлен.
$ git checkout develop
Разрабатывается ветвь, созданная для отслеживания удаленной ветки от источника.
Переключился на новую ветку