web-dev-qa-db-de.com

Git-Stash-Popup muss zusammengefügt werden, Index kann nicht aktualisiert werden

Ich kann meinen Vorrat nicht platzieren, weil ich einen Zweig zusammengefügt habe, der scheinbar mit meinem Vorrat in Konflikt steht, und jetzt kann mein Vorrat scheinbar nicht geknackt werden.

app.coffee: needs merge
unable to refresh index

Weiß jemand, wie man das löst?

FEST!

Es stellte sich heraus, dass es sich bei dem eigentlichen Problem um einen ungelösten Zusammenführungskonflikt aus der Zusammenführung handelte,NICHT, dass der Stash einen Zusammenführungskonflikt verursachen würde.

Lösung: Übertragen Sie die in Konflikt stehende Datei.

84
RandallB

Überprüfen Sie zuerst git status.
Wie das OP erwähnt, 

Das eigentliche Problem war ein ungelöster Verschmelzungskonflikt aus der Verschmelzung, NICHT, dass der Stash einen Verschmelzungskonflikt verursachen würde.

Dort würde git status die Datei als "both modified" erwähnen.

Lösung: Übertragen Sie die in Konflikt stehende Datei.


Sie finden eine ähnliche Situation vor 4 Tagen vor zum Zeitpunkt des Schreibens dieser Antwort (13. März 2012) mit diesem Beitrag: " ‘ Ziehen ist nicht möglich, da Sie keine Dateien enthalten haben

[email protected]:~/GNOME/baobab/help/C$ git stash pop
help/C/scan-remote.page: needs merge
unable to refresh index

Sie haben den Zusammenführungskonflikt behoben (Bearbeitung der richtigen Datei und Festschreiben):
Siehe " Wie löse ich Zusammenführungskonflikte in Git? "

Was der Autor des Blogposts getan hat, war:

[email protected]:~/GNOME/baobab/help/C$ git reset --hard Origin/mallard-documentation
HEAD is now at ff2e1e2 Add more steps for optional information for scanning.

Das heißt, die aktuelle Zusammenführung wird vollständig abgebrochen, sodass der git stash pop angewendet werden kann.
Siehe " Abbruch einer Zusammenführung in Git ".

Das sind deine zwei Möglichkeiten.

50
VonC

Ich hatte dieses Problem, löste dann den Konflikt und beendete das Festlegen, und wieder git stash pop war es, den gleichen Stash wieder herzustellen (verursacht denselben Konflikt :-().

Was ich tun musste, war git stash drop, um es loszuwerden.

11
knocte

Es ist viel einfacher als die akzeptierte Antwort. Du musst:

  1. Überprüfen Sie git status und nicht zusammengeführte Pfade darunter. Beheben Sie die Konflikte. Sie können diesen Schritt überspringen, wenn Sie es später tun möchten.

  2. Fügen Sie alle diese Dateien unter nicht zusammengeführten Pfaden mit git add <filename> zum Index hinzu.

  3. Jetzt git stash pop. Wenn Sie Konflikte erhalten, müssen diese erneut gelöst werden. 

5
ayushgp

Wenn dieses Problem außerhalb einer Zusammenführung/eines Konflikts/einer Aktion auftritt, könnte es sich um die git-Lock-Datei für Ihr Projekt handeln, die das Problem verursacht.

git reset
     fatal: Unable to create '/PATH_TO_PROJECT/.git/index.lock': File exists.
rm -f /PATH_TO_PROJECT/.git/index.lock
git reset
git stash pop
3
StevieJayCee

Ich habe festgestellt, dass die beste Lösung darin besteht, Ihren Vorrat zu verlassen und anschließend eine Lösung zu finden.

git stash branch <branch-name>

wenn Sie Ihre Vorräte löschen, können Sie Ihre Änderungen verlieren und Sie müssen zum Reflog zurückkehren.

0
Julian Tellez

Sie müssen app.coffee zum Staging hinzufügen.

Mach git add app.coffee und dann kannst du deinen Stash anwenden (nach diesem Commit und Push).

0
edvard_munch

So habe ich das Problem gelöst:

  • git-Status (sehen Sie eine Mischung aus Dateien aus einem früheren Stash, Pull, Stash Pop und fortgesetzter Arbeit.)
  • git stash (siehe Bedarfszusammenführung)
  • git hinzufügen. (Füge die Dateien hinzu, damit meine Arbeit meine eigenen zusammengeführten lokal auflöst.)
  • git Stash (kein Fehler)
  • git Pull (kein Fehler)
  • git Stash Pop (kein Fehler und weiterarbeiten)
0
Adam Wright