Aufgrund von Konflikten kann kein "Stash Pop" erstellt werden

19

Ich habe ein lokales Git-Repository und hatte mehrere geänderte Dateien. Dann musste ich schnell eine Lösung für etwas erstellen, damit ich

  • versteckte meine Änderungen (git stash)
  • bearbeitete Datei (vi-Datei)
  • begangen (git commit)
  • Popped Stash (Git Stash Pop)

Dies führte zu Konflikten.

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

Wenn ich versuche, die Änderungen zu bereinigen und den Stash erneut anzuwenden, passiert dasselbe (Konflikt). Die Seite / search.php interessiert mich nicht sonderlich, aber ich möchte andere Dateien aus dem Vorrat holen.

Gibt es eine Möglichkeit, Stash in einen Patch umzuwandeln oder die Dateien einfach so zu erhalten, wie sie waren, als sie verstaut waren?

romaninsh
quelle

Antworten:

20

Der Stash wurde bereits auf andere Dateien angewendet. Sie müssen nur page/search.phpmanuell zusammenführen. Laufen git resetSie anschließend einfach los, um die Änderungen aufzuheben und weiter zu hacken - oder git add ...und verpflichten Sie sich.

user1686
quelle
Ja. Genau. Nachdem ich den Patch mit -p wiederhergestellt hatte, stellte ich fest, dass andere Dateien bereits aktualisiert wurden.
Romaninsh
3
sehr schön, git stash pop, lösen Sie Ihre Konflikte dann git add xdann git resetes der Inszenierung raus, Dank!
Quang
@Quang Es sollte einen geben, zu stash pop --continuedem Aliase gehören reset. :)
Kaz
12

Gelöst mit:

git stash show -p
romaninsh
quelle
Das hat mir den Tag gerettet, =)
anatoly techtonik
Tut -phier etwas?
Joost
2
Show? -p? was macht das Wie könnte "Show" in Beziehung gesetzt werden, um Konflikte zu lösen?
Arnold Roa
2
Dieser Befehl zeigt die im Vorrat vorgenommenen Änderungen an, so dass Sie manuell zusammenführen können
Desmond Weindorf
1
Ich habe git stash show -p | git apply && git stash dropunter coderwall.com/p/anxp0g/force-a-git-stash-pop gefunden und versuche zu überprüfen, ob es funktioniert, bevor ich es ausführe. :-)
PatS
7

Nach dem git stash popBefehl müssen Sie den Konflikt von Hand lösen und dann git stash dropmanuell ausführen, wie es vorgeschlagen wird man git-stash.

Westoque
quelle