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?

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.


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

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.