web-dev-qa-db-ja.com

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非表示):

[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を使用しています

11
MRalwasser

リポジトリの構成では、[remote "Origin"]セクションの次の行が欠落しているようです。

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

Gitにrefs/heads/(すべてのブランチ)で始まるすべての参照をフェッチし、ローカルでrefs/remotes/Origin/の下に保存するように指示します。例えば。リモートリポジトリのrefs/heads/masterはローカルでrefs/remotes/Origin/master(または略してOrigin/master)になります。

それを追加して、プルが機能するかどうか試してみてください。

また、このリポジトリを最初に作成/複製した方法を知ることは非常に興味深いでしょう。

25
robinst

Egitを使用するときにも同じ問題に直面し、変更をプルできませんでした。しかし、以前の回答は大いに役立ちました。現在、構成ファイルを更新する方法は2つあります。

  1. ファイルの直接更新:local_repo_location/.git /に移動し、構成ファイルを開いて追加します:

    【リモート「オリジン」】

    url = YOUR_REPO_URL

    プッシュ= ALREADY_FILLED_VALUE

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

  2. Eclipseを使用した構成の更新:[Windows]-> [設定]-> [チーム]-> [Git]-> [構成]に移動し、[リポジトリ設定]タブで-> [リモート]-> [オリジン]を確認します。問題は、フェッチ用のキーがないことです。次に、[エントリの追加]をクリックし、次のように値を入力します。

キー:remote.Origin.fetch

値:+ refs/heads /:refs/remotes/Origin /

これで完了です。

3

リモートリポジトリからプルするとエラーが発生するのと同じ問題が発生しました(org.Eclipse.jgit.api.errors.transportexception)

これが私がしたことです

  1. originを私のフォークアカウントに変更してプルしました。
  2. 原点を実際の値に戻し、プルしました。

egitの問題については本当に知りませんが、この2つの簡単な手順で私の問題は解決しました。

1
Apurva Khune