EGit:不能推,不能拉

时间:2014-08-08 14:30:03

标签: eclipse git egit

我正在使用EGit,我将更改提交到我的本地git存储库。

我想将此更改推送到遥控器。 执行此操作时,会弹出一个对话框屏幕,显示"rejected-master-master-non-fast-forward"。这个相关问题的答案表明我必须先拉。

执行拉取时,抛出EGit异常:

org.eclipse.jgit.api.errors.TransportException: Nothing to fetch.
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:139)
    at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:253)
    at org.eclipse.egit.core.op.PullOperation$1.run(PullOperation.java:97)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
    at org.eclipse.egit.core.op.PullOperation.execute(PullOperation.java:128)
    at org.eclipse.egit.ui.internal.pull.PullOperationUI.execute(PullOperationUI.java:139)
    at org.eclipse.egit.ui.internal.pull.PullOperationUI$1.runInWorkspace(PullOperationUI.java:114)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.jgit.errors.TransportException: Nothing to fetch.
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1087)
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:130)
    ... 8 more

好像我被卡住了。谁能帮助我?


更新

我的存储库中的.git/config文件包含(远程URL hid):

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  ignorecase = true
[branch "master"]
  remote = origin
  merge = refs/heads/master
[remote "origin"]
    url = <URL_HIDDEN>

我正在使用Eclipse Git Team Provider 3.4.1.201406201815

3 个答案:

答案 0 :(得分:25)

存储库的配置似乎在[remote "origin"]部分中忽略了这一行:

fetch = +refs/heads/*:refs/remotes/origin/*

它告诉git获取以refs/heads/(所有分支)开头的所有引用,并将它们存储在refs/remotes/origin/本地。例如。远程存储库中的refs/heads/master将在本地变为refs/remotes/origin/master(或简称为origin/master)。

你可以添加它并尝试拉动吗?

此外,了解您首次创建/克隆此存储库的方式非常有趣。

答案 1 :(得分:3)

使用egit时我也遇到了同样的问题,无法进行更改。但之前的回答帮了很多忙。现在,有两种方法可以更新配置文件。

  1. 文件中的直接更新:转到local_repo_location / .git /并打开配置文件并添加:

    [remote&#34; origin&#34;]

    url = YOUR_REPO_URL

    push = ALREADY_FILLED_VALUE

    fetch = + refs / heads / :refs / remotes / origin /

  2. 使用eclipse更新配置:转到Windows - &gt;偏好 - &gt;团队 - &gt; Git - &gt;配置,现在在Repository Settings选项卡下,查看 - &gt;遥控 - &gt;起源。 问题是没有获取密钥。 现在单击:添加条目并提供如下值:

  3. 密钥:remote.origin.fetch

    值:+ refs / heads / :refs / remotes / origin /

    现在我们完成了。

答案 2 :(得分:1)

我遇到同样的问题从远程仓库拉出错误(org.eclipse.jgit.api.errors.transportexception)

这就是我做的事情

  1. 将原点更改为我的fork帐户并撤消。
  2. 将原点更改回实际值并拉出。
  3. 我真的不知道自己的问题,但这两个简单的步骤解决了我的问题,希望有所帮助