Подтвердить что ты не робот

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, когда я пытаюсь подключиться к репозиторию, ничего не появляется. В прошлом я смог подтолкнуть его. Но я не могу нажать, пока не выдержу последние изменения.

4b9b3361

Ответ 1

Будьте осторожны - у вас есть случай смешивания между локальной и удаленной ветвью!

Предположим, что вы сейчас находитесь в локальном узле downloadmanager (git checkout downloadmanager)

У вас есть следующие опции:

  • Указывать удаленную ветвь в командах pull/push каждый раз (с учетом регистра):

    git pull origin DownloadManager

    или

    git pull origin downloadmanager:DownloadManager


  1. Укажите следующую ветку отслеживания:

    git push -u origin DownloadManager

    (- u - короткая форма --set-upstream)

    это будет сохраняться в downloadmanager: ссылка DownloadManager в config автоматически (тот же результат, что и следующий шаг).


    1. Установить в 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.