web-dev-qa-db-ja.com

Eclipse / Git-プルに失敗したダーティワークツリー

タイトルが示すように、私は友人と私が共有できるgitリポジトリからプルしようとしていますが、コミットできますが、彼はコミットできますが、プルしようとするといつでも失敗します: DIRTY_WORKTREE

私たちは両方ともgitに対して非常に新しいので、この問題を修正する方法についての指示はありません。

31
Ariana

Gitコマンドラインクライアントを使用して、同様の問題を修正できました。 Eclipse(egit)はDIRTY_WORKTREEとだけ言っていましたが、コマンドラインで複数の競合するファイルを見ました。コマンドラインからgit merge masterを使用すると、Eclipseで競合を簡単に解決できました。だから私にとってこれはエギットの問題のようです。

13
Clerenz

別のアプローチとして、進行中の作業がない場合は、HEADをハードにリセットしてみてください。

EGitの場合: 現在のHEADのリセット

選択する Team -> Reset...プロジェクト。これにより、ブランチまたはタグを選択できるダイアログが開きます。

インデックスおよび作業ツリーを上記ブランチの最後のコミットにリセットするために、現在のブランチでHEADをリセットします。

次に、プルを試してください。

11
VonC

コミットされていない変更がありました。コミットしてからマージすると、ダーティワークツリーの問題はなくなりました。

8
ununiform

現在使用しているバージョンには、まだコミットされていない編集が含まれているようです。そのため、これらの編集を削除するか、コミットする必要があります。それらをコミットすると、マージの競合が発生する可能性があることに注意してください。

1
noname

プロジェクトフォルダーにある.gitignoreを削除してから、マージします。マージには競合が表示されます。競合を解決してから変更をプッシュする必要があります。

1
abagri

EclipseでTeam Synchronizing Viewに行き、そこからプロジェクトを右クリックし、「上書き」を押してすべてのローカル変更を上書きしました。その後、マージを再試行してください。

0
osoblanco

私の場合、DIRTY_WORKTREEは次のシーケンスによって引き起こされました。

  1. コミットでは、無視すべきいくつかのファイルもコミットしました
  2. 次のコミットでは上記のファイルを無視する.gitignoreの変更
  3. 。gitignoreへの変更が欠落している別のブランチの上にリベースする

このシナリオでは、Eclipseは作業ツリーが汚れていると見なします。実際、それは明らかではありません2つのファイルセットの一方がいくつかのファイルを無視し、もう一方が無視しない場合の2つのファイルセットを比較する

Eclipseで問題を解決するにするには、次のことを行いました。

  • .gitignoreを変更して、リベースするブランチのブランチと同じになるようにします。
  • 幸いなことに、リベースまたはマージによるリベースを開始します。
0
psuzzi

Originブランチへのローカルブランチをオーバーライドする場合。

Gitリポジトリビューに移動し、Originマスターをクリックし、[リセットを選択]->現在のHEADとブランチへのリセットを表示します。ローカルの変更を完全に上書きする場合は、HARDリセットを選択します。

0
LadyQ

Eclipseでも同様の問題があり、コミットされていない変更は不均一です。コミットした後、私はマージすることができ、すべてが本来の状態に戻っています。ソースコードを見て、変更を確認してください。ない場合は、ハードリセットできます。

0
Nicolas CHALAUX

別のケースを追加するために、DIRTY_WORKTREEを持っています。Githubプロジェクトにコミットしているのは私だけです。そのため、EGitでプッシュブランチを実行しました。

危険:他の人が同じプロジェクトで作業している場合、このアクションは発散以来のコミットを削除します。

0

コミットせずに変更がある場合、Eclipseは変更をプルしようとするかどうかをアドバイスします。これを解決するには、変更を破棄するか、これらのファイルをコミットします。

ソース: https://www.Eclipse.org/forums/index.php?t=msg&th=890477&goto=1565668&#msg_1565668

このエラーは、まだコミットされていないファイルにローカルな変更を加えたときに発生します。 gitの用語では、作業ツリーにコミットされていない変更があります。

この状況にあるときにプルしようとすると、gitはローカルの変更をどうするかわかりません。それらを破棄して、リモートから変更をプルする必要がありますか?それらをコミットする必要がありますbeforeリモートから変更をプルしますか?それが失敗する理由です。

ローカルリポジトリに変更をプルする前にこの問題を回避するには、ローカルの変更をコミットするか、隠しておくか、破棄する必要があります。作業ツリーに保留中のローカル変更がなければ、エラーなしでプルできるはずです。

0
mahesh reddy

影響を受けるファイルを削除して、もう一度プルしてみてください。その後、変更をgitにプッシュします。私は同じ問題を抱えており、これは私のために働いた。

0
vennapu