webentwicklung-frage-antwort-db.com.de

Eclipse/Git - Pull Dirty Worktree fehlgeschlagen

Wie der Titel besagt, versuche ich, aus einem Git-Repository zu ziehen, das ich zwischen meinem Freund und mir und mir freigeben kann. Er kann einen Commit ausführen, aber wenn einer von uns versucht, ihn zurückzuziehen, bringt er es zurück: DIRTY_WORKTREE

Wir beide sind extrem neu bei git und haben keine Richtung, wie man dieses Problem beheben kann.

31
Ariana

Ich konnte ein ähnliches Problem mithilfe des git-Befehlszeilenclients beheben. Während Eclipse (egit) nur DIRTY_WORKTREE sagte, sah ich in der Befehlszeile mehrere in Konflikt stehende Dateien. Mit git merge master von der Kommandozeile aus konnte ich die Konflikte dann leicht in Eclipse lösen . Für mich scheint dies ein Problem zu sein.

14
Clerenz

Wenn Sie keine Arbeit haben, versuchen Sie, Ihren HEAD zurückzusetzen.

Mit EGit: Zurücksetzen Ihres aktuellen HEAD :

Wählen Sie in einem Projekt Team -> Reset... aus. Dadurch wird ein Dialogfeld geöffnet, in dem Sie einen Zweig oder ein Tag auswählen können.

Setzen Sie HEAD in Ihrem aktuellen Zweig zurück, um den Indexbaum und auf den letzten Commit des Zweigs zurückzusetzen.

Dann versuchen Sie Ihren Zug.

11
VonC

Ich hatte nicht festgeschriebene Änderungen. Nachdem ich sie festgelegt und dann zusammengeführt hatte, verschwand das Problem mit dem schmutzigen Worktree.

8
ununiform

Es scheint zu bedeuten, dass die Version, in der Sie sich gerade befinden, Änderungen enthält, die noch nicht festgelegt wurden. Sie müssen diese Änderungen also entweder entfernen oder festschreiben. Beachten Sie, dass Sie möglicherweise Konflikte bei der Zusammenführung bekommen, wenn Sie sie festlegen.

1
noname

Löschen Sie einfach den im Projektordner vorhandenen .gitignore und führen Sie dann die Zusammenführung von ... durch. Die Zusammenführung zeigt Konflikte, die Sie auflösen müssen, und drücken Sie dann die Änderungen.

1
abagri

In Eclipse ging ich zur Team-Synchronisierungsansicht und klickte mit der rechten Maustaste auf mein Projekt und drückte auf 'Überschreiben', um alle lokalen Änderungen zu überschreiben. Wiederholen Sie dann die Zusammenführung.

0
osoblanco

In meinem Fall wurde das DIRTY_WORKTREE durch diese Sequenz verursacht:

  1. In einem Commit habe ich auch einige Dateien festgelegt, die ich hätte ignorieren sollen
  2. Beim nächsten Commit I modifizierte den .gitignore, der die obigen Dateien ignoriert
  3. Versuchen Sie, auf einem anderen Zweig, auf dem meine Änderung zu .gitignore fehlt, neu zu registrieren 

In diesem Szenario denkt Eclipse, dass Ihr Arbeitsbaum schmutzig ist. Es ist in der Tat nicht offensichtlich, dass der Vergleich zweier Dateisätze, wenn eine der beiden Dateien einige Dateien ignoriert und die andere nicht.

Um das Problem zu lösen in Eclipse habe ich Folgendes getan:

  • Ändern Sie den .gitignore so, dass er dem Zweig in dem Zweig entspricht, in dem ich die Basis setzen möchte
  • Beginnen Sie die Umbasierung oder Umbasierung mit dem Zusammenführen.
0
psuzzi

Wenn Sie Ihren lokalen Zweig mit dem Origin-Zweig überschreiben möchten.

Gehen Sie zur Git-Repo-Ansicht> Klicken Sie auf Origin-Master> Wählen Sie Reset -> Es wird der aktuelle HEAD angezeigt und der Zweig wird zurückgesetzt. Wählen Sie HARD Reset, wenn Sie Ihre lokalen Änderungen vollständig überschreiben möchten

0
LadyQ

Ich hatte ein ähnliches Problem bei Eclipse mit nicht festgeschriebenen Änderungen als uneinheitlich ..__ Nach einem Festschreiben konnte ich zusammenführen und alles ist wieder so, wie es sein sollte .. _. Schauen Sie sich Ihren Quellcode an und überprüfen Sie die Änderungen. Wenn keine, können Sie hart zurücksetzen.

0
Nicolas CHALAUX

Nur um einen weiteren Fall hinzuzufügen, ich habe DIRTY_WORKTREE, ich bin der einzige, der sich für mein Github-Projekt einsetzt, also habe ich in EGit einen Push-Zweig erstellt ...

GEFAHR: Wenn andere an demselben Projekt arbeiten, werden durch diese Aktion ihre Commits seit der Divergenz gelöscht.

0

Wenn Sie Änderungen vorgenommen haben, ohne zu bestätigen, werden Sie von Eclipse informiert, wenn Sie versuchen, die Änderungen zu übernehmen. Um dies zu beheben, können Sie die Änderungen verwerfen oder das Festschreiben dieser Dateien durchführen.

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

Dieser Fehler tritt auf, wenn Sie lokale Änderungen an Dateien vorgenommen haben, die noch nicht festgeschrieben wurden. Im Sprachgebrauch von Git haben Sie nicht festgeschriebene Änderungen in Ihrem Arbeitsbaum vorgenommen.

Wenn Sie in dieser Situation sind und versuchen zu ziehen, ist git nicht sicher, was Sie mit den lokalen Änderungen tun sollen. Sollte es diese verwerfen und die Änderungen aus der Fernbedienung ziehen? Sollte es die vor festschreiben, die die Änderungen von der Direktübertragung ziehen? Deshalb scheitert es.

Um dieses Problem zu vermeiden, bevor Sie Änderungen in Ihr lokales Repository übernehmen, müssen Sie entweder Ihre lokalen Änderungen festschreiben, sie verstecken oder verwerfen. Sobald Sie keine ausstehenden lokalen Änderungen in Ihrem Arbeitsbaum haben, sollten Sie in der Lage sein, fehlerfrei zu ziehen.

0
mahesh reddy

Löschen Sie die betroffenen Dateien und versuchen Sie es erneut. Danach Schieben Sie Ihre Änderungen in den Git. Ich habe das gleiche Problem und das hat für mich funktioniert.

0
vennapu