Git: Kann nicht lokale Änderungen rückgängig machen (Fehler: Pfad… ist unmerierig)
-
26-09-2019 - |
Frage
Ich habe den folgenden Baumstaat
$ git status foo/bar.txt
# On branch master
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# deleted by us: foo/bar.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
Datei foo/bar.txt
Ist da und ich möchte es wieder in den "unveränderten Zustand" bringen (ähnlich wie 'SVN Revert'):
$ git checkout HEAD foo/bar.txt
error: path 'foo/bar.txt' is unmerged
$ git reset HEAD foo/bar.txt
Unstaged changes after reset:
M foo/bar.txt
Jetzt wird es verwirrend:
$ git status foo/bar.txt
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: foo/bar.txt
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo/bar.txt
#
Die gleiche Datei in beiden Abschnitten, neu und geändert? Was soll ich machen?
Lösung
Du hast es falsch gemacht. Sie sollen zuerst zurücksetzen, die Datei abbauen und dann die lokalen Änderungen zurücksetzen.
Versuche dies:
$ git reset foo/bar.txt
$ git checkout foo/bar.txt
Andere Tipps
Das hat perfekt für mich funktioniert:
$ git reset -- foo/bar.txt
$ git checkout foo/bar.txt
git checkout origin/[branch] .
git status
// Beachten Sie DOT (.) Am Ende. Und alles wird gut sein
git checkout foo/bar.txt
Hast du das versucht? (ohne Kopfschlüsselwort)
Normalerweise kehre ich meine Änderungen auf diese Weise zurück.
ich finde Git Stash Sehr nützlich für die zeitliche Handhabung aller "schmutzigen" Zustände.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow