Git удаленная ветка не может найти удаленный реф.
Я не уверен, почему это не работает. Когда я делаю git branch -a
, это то, что я вижу:
![enter image description here]()
Я пытаюсь извлечь из DownloadManager в онлайн-репозиторий GitHub. Я пробовал
- git pull, но затем он жалуется на то, что не знает, какую ветку тянуть с
- git pull origin, не знает, какая ветка
- git pull origin downloadmanager
fatal: Couldn't find remote ref downloadmanager. Unexpected end of commands stream
- git пульт дистанционного управления/источник/DownloadManager
'fatal couldn't find remote ref remotes/origin/DownloadManager. Unexpected end of commands stream
Есть ли что-то, что мне не хватает? В Xcode, когда я пытаюсь подключиться к репозиторию, ничего не появляется. В прошлом я смог подтолкнуть его. Но я не могу нажать, пока не выдержу последние изменения.
Ответы
Ответ 1
Будьте осторожны - у вас есть случай смешивания между локальной и удаленной ветвью!
Предположим, что вы сейчас находитесь в локальном узле downloadmanager (git checkout downloadmanager
)
У вас есть следующие опции:
-
Указывать удаленную ветвь в командах pull/push каждый раз (с учетом регистра):
git pull origin DownloadManager
или
git pull origin downloadmanager:DownloadManager
-
Укажите следующую ветку отслеживания:
git push -u origin DownloadManager
(- u - короткая форма --set-upstream)
это будет сохраняться в downloadmanager: ссылка DownloadManager в config автоматически (тот же результат, что и следующий шаг).
-
Установить в git конфигурацию по умолчанию для удаленного отслеживания:
git branch -u downloadmanager origin/DownloadManager
(обратите внимание, поскольку git 1.8 для команды ветвления -u - это короткая форма --set-upstream-to, которая немного отличается от устаревшего --set-upstream)
или отредактировать конфигурацию вручную (я предпочитаю этот путь):
git config --local -e
- > Это откроет редактор. Добавьте блок ниже (предположим, после блока "master" ):
[branch "downloadmanager"]
remote = origin
merge = refs/heads/DownloadManager
и после любого из этих шагов вы можете легко использовать:
git pull
Если вы используете TortoiseGit:
RightClick on repo → TortoiseGit → Настройки → git → Редактировать локальный .git/config
Ответ 2
Имя ветки в Git зависит от регистра. Чтобы увидеть имена ваших ветвей, которые Git "видит" (включая правильный корпус), используйте:
git branch -vv
... и теперь, когда вы можете увидеть правильное название ветки, используйте следующее:
git pull origin BranchName
где "BranchName" - это название вашего ветки. Убедитесь, что вы правильно соответствуете случаю.
Итак, в случае OP (Original Poster) команда будет следующей:
git pull origin DownloadManager
Ответ 3
Эта ошибка возникает из-за того, что локальный репозиторий не может идентифицировать удаленную ветвь в первый раз. Поэтому вам нужно сделать это сначала. Это можно сделать, используя следующие команды:
git remote add origin 'url_of_your_github_project'
git push -u origin master
Ответ 4
Это связано с тем, что ваше имя удаленной ветки "DownloadManager", я думаю, когда вы проверяете свою ветку, вы даете этой ветке новое имя "downloadmanager".
Но это только ваше локальное имя, а не удаленное имя ref.
Ответ 5
Вам нужно настроить локальную ветвь для отслеживания удаленной ветки, которая не будет выполняться автоматически, если у них разные заглавные буквы.
Try:
git branch --set-upstream downloadmanager origin/DownloadManager
git pull
Ответ 6
Для меня это произошло из-за того, что удаленная удаленная ветка была удалена из Github.