Текущая ветвь не настроена для извлечения. Нет значения для ключа branch.master.merge, найденного в конфигурации. - PullRequest
161 голосов
/ 11 января 2012

Я получаю эту ошибку, когда пытаюсь извлечь из удаленного репозитория команду Egit> pull

Текущая ветвь не настроена для извлечения. Нет значения для ключа. В конфигурации

обнаружен файл branch.master.merge *

Ответы [ 16 ]

155 голосов
/ 11 января 2012

Ваша локальная главная ветвь не настроена на отслеживание удаленной главной ветки.

Вы можете сделать git pull origin master, чтобы указать git явную ветку, которую вы хотите получить, или добавить ее в свой .git / config:

[branch "master"]
  remote = origin
  merge = refs/heads/master

При первом нажатии на мастеринг добавьте переключатель -u (git push -u origin master).Это настроит все автоматически.

63 голосов
/ 15 марта 2012

Как выясняется, ответ @ Michał Szajbe - это решение проблемы. Ключи затмения, о которых идет речь, создаются из egit «рабочего каталога». Если вы столкнулись с этой проблемой, найдите каталог .git в этом рабочем каталоге и отредактируйте файл .git / config с помощью текстового редактора, добавив раздел, который описывает Михал. По моему опыту, в наши дни это довольно стандартная операция для случаев, когда вы сначала запускаете git init и отправляете его на неинициализированный пульт, который создает ветку master. В этом случае я не нашел способа не выполнять ручное редактирование для git pull, даже с помощью git из командной строки.

После того, как редактирование сохранено, щелкните правой кнопкой мыши на git-репо в вашей перспективе egit "Git Repositories" и выберите свойства, вы увидите, что этот раздел ключей был создан (или, скорее всего, просто прочитан из файла конфигурации) и удаленный мастер на локальный мастер git pull будет работать, как ожидается, в дальнейшем.

enter image description here

Возможно, вы могли бы сами ввести эти ключи и значения, но копирование и вставка того, что показывает Михал, безусловно, намного быстрее и, вероятно, безопаснее. На самом деле я не пытался добавить ключи вручную через редактор свойств, и вряд ли я это сделаю, поскольку знаю, что этот метод работает и имеет смысл, поскольку egit просто обращается к локальному репозиторию git.

Я также поддерживаю некоторых людей в моем офисе, которые используют Flex и редактор Flexbuilder, который построен на основе eclipse и egit. Эти инструкции в равной степени относятся к ним.

56 голосов
/ 07 марта 2013

Чтобы устранить эту проблему в Eclipse, откройте меню Windows и выберите Показать представление / Другое / Git Repositories .

На вкладке Git Repositories:

  • расширить локальный репозиторий
  • щелкните правой кнопкой мыши Пульт
  • нажмите Создать удаленный ...
  • Удаленное имя = происхождение
  • рядом с IRI нажмите кнопку Изменить
  • CTRL + SPACE на URI
  • выберите удаленное местоположение
  • нажмите Готово
  • нажмите Сохранить и нажмите

Опять же, на вкладке Git Repositories:

  • щелкните правой кнопкой мыши origin
  • выберите Настроить выборку ...
  • при отображении ссылки нажмите Редактировать (Дополнительно) ...
  • нажмите Добавить все филиалы Spec
  • установите флажок Force Update
  • нажмите Готово

Опять же, на вкладке Git Repositories:

  • щелкните правой кнопкой мыши на вашем локальном хранилище
  • выберите Свойства
  • нажмите Новая запись ...
  • введите следующие две клавиши:

(1) * * 1 093

Key = branch.master.remote
Value = origin

(2) * * 1 096

Key = branch.master.merge
Value = refs/heads/master
47 голосов
/ 24 января 2013

Это сработало для меня:

Щелкните правой кнопкой мыши мою извлеченную локальную ветвь, которая не может тянуть (моя называется "разработка"). Выберите "Настроить ветвь ..." для "Восходящая ветвь:",Я выбрал «refs /heads / development». Для «Remote:« Я выбрал »origin». Слева, «Rebase», не отмечен. Хит OK

Теперь мое окно конфигурации pref выглядит как окно ответа gview.

18 голосов
/ 26 декабря 2012

У меня тоже были проблемы с настройкой. Сейчас он работает, поэтому я собираюсь поделиться своим файлом конфигурации. Я думаю, что это поможет:

[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true

    [branch "master"] 
        remote = origin 
        merge = refs/heads/master 
    [remote "origin"] 
        url = https://github.com/chelder86/ArcadeTongame.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Примечание. https://github.com/chelder86/ArcadeTongame.git следует заменить собственным URL-адресом клонирования HTTPS.

10 голосов
/ 29 сентября 2012

Та же проблема. Вот как я решил это в затмении / egit :

Первоначально я клонировал удаленное репо на свой офисный компьютер (мое собственное репо, но на удаленном сервере). Затем я создал новую ветку проекта репо локально («тестирование») и перенес его в удаленный репозиторий. Клонировал удаленное репо на мой ноутбук, переключился в «тестирующую» ветку, поработал на нем и т. Д., Нажал, затем вернулся в офис. Когда я попытался вытащить «тестирующие» изменения с сервера, я получил сообщение «локальная ветка не настроена для извлечения»

Проблема в том, что на настольном компьютере "тестирование" является только локальным, не имеет информации об удаленном URL, поэтому не может извлекать изменения.

Я решил это в затмении (egit) :

  1. удаление локальной ветки
  2. вытащить ветку из удаленного репо как новую филиал.

Шаги были:

  • Перейти к Git Repository Изучение перспективы
  • переименовать локальную ветку "zzz" (параноик, не люблю удалять, пока не убедился, что я правильно понял!)
  • rt-click "Ветви", "Переключиться на", "Новая ветка"
  • раскрыть список «Исходная ссылка», выбрать ветку «тестирование» (стратегия извлечения «объединить», проверено «Проверка новой ветки»)
  • нажмите "Готово"
  • Переключиться на обычную перспективу, убедиться, что мои файлы присутствуют
  • переключиться обратно на Git Repository Exploring и удалить ветку "zzz"

Примечание: я использую Eclipse Indigo. В других выпусках шаги могут отличаться.

9 голосов
/ 26 октября 2012

Я только что получил ту же проблему, но принятый ответ не работал для меня.Вот что я сделал (хотя не могу подтвердить, повлиял ли принятый ответ, поскольку обновленная конфигурация остается):

Разверните дерево вашего git-репозитория из представления «Git Repositories».

Щелкните правой кнопкой мыши «Remotes» и выберите «Create Remote»

Установите переключатель «Configure fetch» ​​-> «Ok»

Выберите «Change» напротив текстового поля «URI»

Введите данные своего репозитория git и нажмите «Завершить»

Выберите «Сохранить»

Теперь вы сможете извлекать данные из удаленного репозитория.

Обратите внимание - когда я попробовал «Dry-Run», который, по-моему, является просто тестом соединения, он не прошел, но выгрузка все еще работала.

3 голосов
/ 11 марта 2013

О решении gview:

then find the .git directory in that working directory and edit the .git/config file with a text editor

Вам не нужно искать его самостоятельно или открывать его в текстовом редакторе.

  • Окно -> Показать представление -> Другое-> GIT -> Git Repositories
  • Разверните созданную вами папку репо.
  • В ней будет находиться папка с именем «Рабочая папка», разверните ее.
  • Там будет папкавнутри папки «Рабочая папка» с именем «.git» разверните ее.
  • Внутри «.git» будет «config», щелкните правой кнопкой «config» -> откройте в редакторе.Файл конфигурации откроется прямо в Eclipse, где вы можете его редактировать.Я добавил следующее, и теперь я могу вытащить без ошибок:

[филиал "master"]

remote = origin

merge = refs / главы / master

2 голосов
/ 12 февраля 2014

представление репозитория git -> + ветки -> локальные -> выберите локальную ветку, которую вы хотите назначить удаленной -> щелкните правой кнопкой мыши -> выберите удаленную (вероятно, исходную) и ветвь восходящего потока

2 голосов
/ 18 января 2013
The current branch is not configured for pull.
No value for key branch.master.merge found in configuration

Альтернатива для PULL (исключая вышеуказанную ошибку):

  1. FETCH для обновления удаленной ветки на вашем компьютере
  2. MERGE вашего локального филиала с удаленным филиалом
    (Team -> Merge ... -> Remote Tracking -> origin / branch )
...