当前分支未配置为提取没有在配置中找到键branch.master.merge的值


Answers:


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
如果您要使用在eclipse中必须更改的内容来更新问题,以配置此功能,则@ jmort253会很棒。
gview 2012年

@gview-对不起,我停止使用Egit了,正在使用命令行。当我提取时,Eclipse将同事提交的所有文件都标记为由我修改,并且不包含所做的更改。因此,我正在使用命令行。我不推荐EGit;但是,使用Mac的同事可以使用它。如果我确实尝试给它另一个机会(可疑),我将在这里更新答案。坦率地说,我不知道所有宣传是什么。我准备回到Subversion。
jmort253

9
@ jmort253,在我给您留言后,我四处摸索,发现处理此问题的最佳方法是完全按照原始回复中的建议进行操作。Egit从.git / config中读取值,因此按所述使用文本编辑器对其进行编辑可解决此问题。
gview 2012年

64

事实证明,@MichałSzajbe的答案是解决问题的方法。有问题的日食密钥是从egit的“工作目录”构建的。如果遇到此问题,请在该工作目录中找到.git目录,并使用文本编辑器添加Michal描述的部分来编辑.git / config文件。根据我的经验,对于您第一次进行git init并推送到未创建的远程对象(它创建master分支)的情况来说,这几天的操作是相当标准的。我还没有找到一种方法,即使使用命令行git也不进行手动编辑以进行git pull。

保存编辑后,右键单击egit“ Git Repositories”透视图中的git repo,然后选择属性,现在您将看到此部分密钥已创建(或者更可能是从配置文件中读取)和一个远程master到本地master git pull将会按预期运行。

在此处输入图片说明

您可能可以自己输入这些键和值,但是复制和粘贴Michal显示的内容肯定会更快而且更安全。我实际上并没有尝试通过属性编辑器手动添加键,也没有这样做,因为我知道此方法有效,并且很有意义,因为egit只是调用本地git repo。

我还为办公室中的某些人提供支持,他们正在使用Flex和基于Eclipse和egit构建的Flexbuilder编辑器。这些说明与此同等重要。


7
我没有直接编辑配置文件,而是使用上面显示的“属性”对话框添加了键“ branch.master.merge”。这也起到了作用。
Matthias Wuttke

57

要在Eclipse中解决此问题,请打开Windows菜单,然后选择显示视图 / 其他 / Git存储库

在Git仓库选项卡中:

  • 扩展本地存储库
  • 右键单击远程
  • 单击创建远程...
  • 远程名称=来源
  • IRI旁边,按“ 更改”按钮
  • CTRL+ SPACE在URI上
  • 选择远程位置
  • 完成
  • 保存并推送

同样,从Git存储库选项卡:

  • 右键点击原点
  • 选择配置提取...
  • 在参考映射上,按编辑(高级)...
  • 添加所有分支规范
  • 选择强制更新复选框
  • 完成

同样,从Git存储库选项卡:

  • 右键单击本地存储库
  • 选择属性
  • 新条目...
  • 输入以下两个键:

(1)

Key = branch.master.remote
Value = origin

(2)

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

4
对我来说,这是问题的最佳答案。
Kashif Nazar14 '04

1
公认的答案似乎缺少此处介绍的某些步骤。
FableBlaze

47

这对我有用:

右键单击无法拉出的我已签出的本地分支(我的称为“开发”),选择“配置分支...”作为“上游分支:”,我选择“参考/标题/开发”作为“远程:”我选择了“原产地”,未选中“重新设置”,点击确定

现在我的config pref窗口看起来像gview的答案中的那个。


14
我发现很难找到“配置分支...”。我设法通过转到“ Git存储库”视图来找到它,扩展分支机构,本地,然后右键单击分支机构
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应替换为您自己的HTTPS克隆URL。


工作配置文件正是我需要查看的文件。谢谢!
Martin Tuskevicius 2014年

10

同样的问题。这是我在eclipse / egit中解决它的方法

最初,我将远程存储库克隆到我的办公室计算机(我自己的存储库,但是在远程服务器上)。然后,我在本地创建了一个新的repo项目分支(“测试”),并将其推送到远程存储库。将远程回购克隆到我的笔记本电脑,切换到“测试”分支,进行处理,等等,然后推送,然后回到办公室。当我尝试从服务器提取“测试”更改时,收到消息“未为提取配置本地分支”。

问题是在桌面上,“测试”仅是本地的,没有远程URL信息,因此无法提取更改。

在eclipse(egit)中解决了这个问题,方法是:

  1. 删除本地分支
  2. 从远程仓库中提取分支作为新分支。

步骤为:

  • 转到Git存储库探索透视图
  • 重命名本地分支“ zzz”(偏执狂,在确定正确之前不喜欢删除!)
  • rt依次单击“分支”,“切换到”,“新分支”
  • 下拉“ Source ref”列表,选择“ testing”分支(拉策略“ merge”,“ Checkout new branch”已选中)
  • 点击“完成”
  • 切换到通常的角度,确保我的文件存在
  • 切换回Git Repository探索并删除分支“ zzz”

注意:正在运行Eclipse Indigo。其他版本上的步骤可能有所不同。


9

我只是遇到了同样的问题,但是接受的答案对我没有用。这是我所做的(尽管由于更新后的配置仍然存在,我无法确认接受的答案是否有影响):

从“ Git Repositories”视图扩展git存储库树。

右键单击“远程”,然后选择“创建远程”

选择单选按钮“配置获取”->“确定”

选择“ URI”文本框对面的“更改”

输入您的git信息库详细信息,然后单击“完成”

选择“保存”

现在,您应该能够从远程存储库中提取信息了。

注意-当我尝试“试运行”时,我认为这只是一个连接测试,它失败了,但拉动仍然有效。


完美地工作。与此问题类似的解决方案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存储库
  • 展开您创建的repo文件夹。
  • 它将包含一个名为“工作目录”的文件夹,将其展开。
  • 在“工作目录”文件夹中将有一个名为“ .git”的文件夹,将其展开。
  • 在“ .git”中将有“ config”,右键单击“ config”->在编辑器中打开。配置文件将在Eclipse中打开,您可以在其中进行编辑。我添加了以下内容,现在我可以毫无错误地进行提取:

[分支“主人”

远程=起源

合并=裁判/负责人/大师


2

我发现使用eclispe可以正常工作(这当然不是解决问题的正确方法,但是它可以工作):推送到远程存储库,删除本地工作区和存储库,使用导入对话框从git进行导入。导入向导负责为将来的提取设置所有内容。


2

尝试Windows-> Show View-> Navigator。在导航器窗口中,找到项目中的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与远程分支当地分支
    (团队- >合并... - >远程跟踪- > 产地/支

2

git repository视图-> +分支->本地->选择要分配给远程站点的本地分支->右键单击->选择远程(可能是原始站点)和上游分支


这在Eclipse中做到了,没有任何“配置文件”修改。应该是公认的答案,因为该问题特定于日食。
josephus

1

我在使用Eclipse Git插件时发现的最简单的解决方案如下:

  1. 右键单击项目,然后选择团队>推送分支
  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. 进行git pull或从eclipse中拉出。
  5. 错误已解决。

PS:因为它是一个旧线程,所以只是进行更新,因为它可能会被其他人使用。


0

提交时,如果遇到此问题。试试这个简单的方法:

  1. 团队->推送至上游-弹出窗口。
  2. 复制您的URI并粘贴在该弹出窗口中。

您的分支配置为拉/推。您的代码更改将被推送到存储库。

谢谢

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.