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


163

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

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


2
Была такая же проблема, но для значения ключа remote.origin.url нашел, как это исправить на stackoverflow.com/a/10662106/759452
Adrien Be

Ответы:


155

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

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

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

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


25
Но как вы делаете это в затмении? Я считаю, что вопрос помечен как "затмение". Спасибо! :)
jmort253

2
+1 В любом случае спасибо. Ваш ответ сделал помощь , потому что получается, что мы не были созданы , чтобы тянуть :) После того, как мы выяснили , как настроить , что в Eclipse, все собрались вместе. Теперь мы обнаруживаем, что работать с Git не так уж и больно, если вы обернетесь вокруг того, как он работает. В основном мы снова проверили хранилище и настроили его для извлечения.
jmort253

16
@ jmort253 было бы здорово, если бы вы обновили вопрос, указав детали того, что вы должны были изменить в eclipse, чтобы настроить это.
gview

@gview - Извините, я перестал использовать Egit и использую командную строку. Когда я вытягиваю, Eclipse помечает любые файлы, которые мои коллеги зафиксировали, как измененные мной, и не включает изменения. Итак, я использую командную строку. Я не рекомендую EGit; однако, мои коллеги, использующие Mac, могут использовать его. Если я попытаюсь дать ему еще один шанс (сомнительно), я обновлю ответ здесь. Откровенно говоря, я не понимаю, о чем идет речь. Я готов вернуться к Subversion.
jmort253

9
@ jmort253, после того, как я оставил тебе сообщение, я обошел вокруг и понял, что лучший способ справиться с этим - это делать именно то, что было рекомендовано в исходном ответе. Egit читает значения из .git / config, поэтому редактирование их с помощью текстового редактора, как описано, решает проблему.
gview

64

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

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

введите описание изображения здесь

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

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


7
Я не редактировал файл конфигурации напрямую, но добавил ключ "branch.master.merge", используя диалог свойств, показанный выше. Это также работает как шарм.
Матиас Ваттке

57

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

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

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

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

  • щелкните правой кнопкой мыши на происхождение
  • Выбрать Configure Fetch ...
  • на Ref map нажмите Редактировать (Дополнительно) ...
  • Нажмите Добавить все ветки Spec
  • выберите принудительное обновление флажок
  • нажмите Готово

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

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

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master

4
Для меня это лучший ответ на вопрос.
Кашиф Назар

1
В принятом ответе, похоже, отсутствуют некоторые шаги, которые здесь описаны.
FableBlaze

47

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

Щелкните правой кнопкой мыши по моей извлеченной локальной ветке, которая не может тянуть (моя называется "разработка"). Выберите "Настроить ветку ...". Для "Upstream Branch:" я выбрал "refs /head / development". Для "Удаленного:". Я выбрал "origin", оставил "Rebase", снял отметку "Hit OK"

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


14
Я нашел "Настроить ветку ..." очень трудно найти. Мне удалось найти его, перейдя в представление «Git Repositories», развернув ветки локально, а затем щелкнув правой кнопкой мыши на ветке
Edd

18

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

[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

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

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

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

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

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

Шаги были:

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

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


9

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

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

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

Выберите переключатель «Настроить выборку» -> «ОК».

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

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

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

Теперь вы должны быть в состоянии извлечь из удаленного хранилища.

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


работает отлично. Аналогичное решение для этого вопроса stackoverflow.com/a/10662106/759452
Adrien Be

3

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

[ветка "мастер"]

удаленный = источник

объединить = refs / главы / мастер


2

То, что я обнаружил, работало с использованием eclispe (это, конечно, неправильный путь, но это работает): пересылка в удаленный репозиторий, удаление локального рабочего пространства и репозитория, импорт из git с помощью диалога импорта. Мастер импорта позаботится о том, чтобы все было готово для будущих операций.


2

Попробуй windows-> Показать вид-> Навигатор. В окнах навигатора найдите папку bin в вашем проекте. Затем зафиксируйте папку bin в github и надейтесь, что она работает хорошо. Попробуйте вытащить или получить его после выполнения вышеупомянутой задачи.


2
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 )

2

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


это было сделано в Eclipse без каких-либо изменений в «файле конфигурации». Должен быть принятый ответ, так как вопрос специфичен для затмения.
Иосиф

1

Самое простое решение, которое я нашел при использовании плагина Eclipse Git, заключается в следующем:

  1. Щелкните правой кнопкой мыши по проекту и выберите Team> Push Branch
  2. Убедитесь, что флажок рядом с «Настройка восходящего потока для push и pull» установлен
  3. Нажмите «Далее» и завершите толчок.

После того, как это завершится, ветвь будет теперь также правильно настроена для вытягивания.


1

отредактируйте файл конфигурации в папке .git вашего репозитория следующим образом.

замещать https://github.com/your/uri на свой github репозиторий uri.

удачи.

[core]
    symlinks = false
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = https://github.com/your/uri
    fetch = +refs/heads/*:refs/remotes/origin/*

PS: использовать идею, забыть затмение


0

Вам нужно заменить ваш конфигурационный файл этим кодом ... ваш конфигурационный файл находится внутри папки 'git' в вашем хранилище. Папка 'git' скрыта, поэтому сначала вы должны показать скрытые файлы. Откройте файл конфигурации и напишите эти коды:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true


hideDotFiles = dotGitOnly
[remote "origin"]
url = 'url to the git repository that you want to pull'
fetch = 

+refs/heads/*:refs/remotes/origin/*
puttykeyfile = 
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal


geometry = 887x427+66+66 171 192

0

Я получил ту же проблему в Eclipse Neon. Но ни одно из решений не помогло мне. Я получил проблему, когда я изменил ветвь проекта, а затем он выдал эту ошибку. Решение, которое я попробовал:

  1. Зайдите в проект / .git / config файл .
  2. Если rebase = false , удалите его.
  3. Обнови свой проект.
  4. Делать мерзавец тянуть или тянуть от затмения.
  5. Ошибка устранена.

PS: Поскольку это старый поток, просто обновление, поскольку это может прийти для кого-то еще.


0

Во время совершения, если вы столкнулись с этой проблемой. Попробуйте этот простой подход:

  1. Team-> Push to upstream - открывается всплывающее окно.
  2. Скопируйте ваш URI и вставьте в это всплывающее окно.

Ваша ветка настроена на тянуть / толкать. Ваши изменения кода будут перенесены в хранилище.

Спасибо

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.