Поточна гілка не налаштована для витягання Немає значення для ключа bran.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 було б чудово, якби ви оновили питання з деталями того, що вам довелося змінити в затемненні, щоб налаштувати це.
перегляд

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

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

64

Як виявляється, відповідь @ Michał Szajbe - це вирішення проблеми. Проблемні ключі затемнення будуються з egit "робочої каталоги". Якщо ви зіткнулися з цією проблемою, знайдіть каталог .git у цьому робочому каталозі та відредагуйте .git / config файл текстовим редактором, додавши розділ, який описує Michal. Це, на мій досвід, досить стандартна операція в ці дні для випадків, коли ви вперше git init і натискаєте на неініціалізований пульт, що створює головну гілку. Я не знайшов способу в цьому випадку не робити ручне редагування для того, щоб git тягнув, навіть із командним рядком git.

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

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

Можливо, ви могли самі вводити ці ключі та значення, але копіювання та вставлення того, що показує Міхал, - це, безумовно, набагато швидше і, ймовірно, безпечніше. Насправді я не намагався додавати ключі вручну через редактор властивостей, і я, мабуть, не знаю, оскільки я знаю, що цей метод працює, і має сенс, оскільки egit - це просто дзвінок до локальної git repo.

Я також підтримую деяких людей у ​​своєму кабінеті, які використовують Flex та редактор Flexbuilder, який побудований на вершині затемнення та egit. Ці інструкції для них однаково стосуються.


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

57

Щоб вирішити цю проблему в Eclipse, відкрийте меню Windows і виберіть Показати перегляд / Інші / Git Repositories .

На вкладці Git Repositories:

  • розгорніть свій локальний сховище
  • клацніть правою кнопкою миші на віддаленому
  • натисніть кнопку Створити віддалене ...
  • Віддалене ім’я = походження
  • поруч із IRI натисніть кнопку Змінити
  • CTRL+ SPACEна URI
  • виберіть віддалене місце
  • натисніть кнопку Готово
  • натисніть Зберегти та натиснути

Знову на вкладці Git Repositories:

  • клацніть правою кнопкою миші на походження
  • виберіть Налаштувати витяг ...
  • на Ref map map натисніть кнопку Правка (Додатково) ...
  • натисніть Додати всі гілки Спец
  • встановіть прапорець Примінити оновлення
  • натисніть кнопку Готово

Знову на вкладці Git Repositories:

  • клацніть правою кнопкою миші на вашому локальному сховищі
  • виберіть Властивості
  • натисніть Новий запис ...
  • введіть наступні дві клавіші:

(1)

Key = branch.master.remote
Value = origin

(2)

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

4
Мені це найкраща відповідь на питання.
Кашиф Назар

1
У прийнятій відповіді, здається, відсутні деякі кроки, які тут висвітлюються.
FableBlaze

47

Це працювало для мене:

Клацніть правою кнопкою миші мою зареєстровану локальну гілку, яка не може витягнути (моя називається "розробка"). Виберіть "Налаштувати гілку ..." Для "Вгору за течією:", я вибрав "refs / heads / development" For "Remote:" Я вибрав "походження", "Ліворуч" залишив без галочки натискання ОК

Тепер моє попереднє вікно config виглядає як відповідь у відповіді 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 :

Спочатку я клонував віддалений репо на свій офісний комп'ютер (власне репо, але на віддалений сервер). Потім я створив нову гілку проекту репо на локальному рівні ("тестування") і перемістив його у віддалений сховище. Клонував віддалений репо на мій ноутбук, перейшов на «тестуючу» гілку, працював над нею тощо, штовхнув, потім повернувся до офісу. Коли я намагався витягнути "тестуючі" зміни з сервера, отримав msg "локальна гілка не налаштована для витягування".

Проблема полягає в тому, що на робочому столі "тестування" є лише локальним, не має віддаленої інформації про URL, тому не може тягнути зміни.

Я вирішив це під час затемнення (egit) :

  1. видалення місцевої філії
  2. витягніть гілку з віддаленого репо як нову гілку.

Кроки були:

  • Перейдіть до точки зору сховища Git Exploring
  • перейменуйте локальну гілку на "zzz" (параноїдальна, не люблю видалення, поки впевнений, що я все правильно отримав!)
  • клацніть rt "Відділення", "Перехід на", "Нова гілка"
  • витягніть вниз список "Виправлення джерел", виберіть гілку "тестування" (витягніть стратегію "об'єднати", "перевірити нову гілку")
  • натисніть "закінчити"
  • Перейдіть на звичайну перспективу, переконайтесь, що мої файли присутні
  • повернутися до сховища Git Дослідження та видалення гілки "zzz"

Примітка: я запускаю Eclipse Indigo. Етапи можуть бути різними в інших випусках.


9

Я щойно отримав те саме питання, але прийнята відповідь не працювала для мене. Ось що я зробив (хоча я не можу підтвердити, чи прийняла відповідь вплинула, як залишається оновлений конфігурація):

Розгорніть своє дерево сховища git з подання «Git Repositories».

Клацніть правою кнопкою миші на "Віддалені" та виберіть "Створити віддалений"

Виберіть перемикач "Налаштувати отримання" -> "Ок"

Виберіть "Змінити" навпроти текстового поля "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
  • Розгорніть створену вами папку repo.
  • Він буде містити папку під назвою "Робочий каталог", розгорніть її.
  • У папці "Робочий каталог" всередині папки ".git" буде розгорнути її.
  • Всередині ".git" буде "config", клацніть правою кнопкою миші "config" -> відкрити в редакторі. Конфігураційний файл відкриється прямо в Eclipse, де ви можете його редагувати. Я додав наступне і тепер можу витягнути без помилок:

[відділення "майстер"]

віддалений = походження

merge = refs / heads / master


2

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


2

Спробуйте вікна-> Показати перегляд-> Навігатор. У вікнах Навігатора знайдіть папку бін у вашому проекті. Потім зафіксуйте папку бін для github та сподівайтеся, що вона добре працює. Спробуйте витягнути або взяти його після виконання всіх завдань вище.


2
The current branch is not configured for pull.
No value for key branch.master.merge found in configuration

Альтернативою PULL (уникнення вищезгаданої помилки) є:

  1. ПОЛУЧИТИ, щоб оновити віддалений відділення на вашій машині
  2. МЕРГ місцевої філії з віддаленою філією
    (Команда -> Об’єднання ... -> Віддалене відстеження -> походження / гілка )

2

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


це робилося в затемненні без будь-яких модифікацій "файла конфігурації". Повинна бути прийнята відповідь, оскільки питання є специфічним для затемнення.
Йозеф

1

Найпростіше рішення, яке я знайшов під час використання плагіна Eclipse Git, полягає в наступному:

  1. Клацніть на проект правою кнопкою миші та виберіть команду> Push Branch
  2. Переконайтесь, що прапорець "Налаштувати вгору за течією та натисканням" встановлено прапорець
  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. Перейдіть до файлу project / .git / config .
  2. Якщо rebase = false , видаліть його.
  3. Оновіть свій проект.
  4. Витягніть чи потягніть від затемнення.
  5. Помилка вирішена.

PS: Оскільки це старий потік, просто оновлюється, оскільки це може зайти для когось іншого.


0

Виконуючи завдання, якщо ви зіткнулися з цією проблемою. Спробуйте цей простий підхід:

  1. Team-> Push to the stream - відкриється спливаюче вікно.
  2. Скопіюйте свій URI та вставте у цьому спливаючому вікні.

Ви відділення налаштовуєтесь на тягнути / штовхати. Зміни вашого коду будуть перенесені на репозитарію.

Дякую

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.