Ich habe einige Dateien, die in Git nicht verfolgt wurden. Ich nahm einige Änderungen vor und wollte sie festschreiben, stellte jedoch fest, dass ich vergessen hatte, zuerst die unveränderten Dateien einzuchecken. Also habe ich die Dateien verstaut und dann die unveränderten Versionen hinzugefügt.
Wenn ich dann den Stash auf das Repository anwende, treten Konflikte auf, weil die Dateien bereits hinzugefügt wurden.
Wie kann ich den Stash anwenden und die Verwendung der Versionen im Stash anstelle der Originale im Repository erzwingen?
Vielen Dank
git rm
bevor Sie dies tungit stash apply
.git
wird sie nur als kleine Änderung behandelt.Antworten:
Verwenden Sie
git checkout
anstelle vongit stash apply
:Dadurch werden alle Dateien im aktuellen Verzeichnis auf ihre versteckte Version zurückgesetzt.
Wenn Änderungen an anderen Dateien im Arbeitsverzeichnis vorgenommen werden sollten, ist hier eine weniger umständliche Alternative:
Wenn sich der Index ändert oder die Zusammenführung Dateien mit lokalen Änderungen berührt, lehnt git die Zusammenführung ab. Einzelne Dateien können mit aus dem Vorrat ausgecheckt werden
oder interaktiv mit
quelle
git checkout stash -- .
Dieser Befehl hat buchstäblich nichts getan, als ich ihn ausgeführt habe.git checkout stash -- .
im höchsten übergeordneten Ordner ausgeführt werden, der meine Änderungen enthielt, andernfalls wurden nur Änderungen auf den Ordner angewendet, von dem aus ich den Befehl ausgeführt habe..
das aktuelle Verzeichnis angegeben wird (Sie können es durch einen anderen Pfad ersetzen, anstatt das Verzeichnis zu wechseln). Ich habe meine Antwort aktualisiert, um dies klarer zu machen.git stash show -p | git apply
und dann,
git stash drop
wenn Sie die verstauten Gegenstände fallen lassen möchten.quelle
Um
git stash pop
diesen Befehl zu erzwingen, führen Sie ihn ausquelle
TL; DR:
Lange Version:
Sie erhalten diesen Fehler aufgrund der nicht festgeschriebenen Änderungen, die Sie überschreiben möchten. Machen Sie diese Änderungen mit rückgängig
git checkout HEAD
. Sie können Änderungen an einer bestimmten Datei mit rückgängig machengit checkout HEAD path/to/file
. Nachdem Sie die Ursache des Konflikts beseitigt haben, können Sie sich wie gewohnt bewerben.quelle