it-swarm.com.de

Zwinge git stash, hinzugefügte Dateien zu überschreiben

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, die nicht geänderten Dateien zuerst einzuchecken. Also habe ich die Dateien verstaut und dann die unveränderten Versionen hinzugefügt.

Wenn ich dann den Stash auf das Repository übertrage, treten Konflikte auf, da die Dateien bereits hinzugefügt wurden.

Wie kann ich den Stash anwenden und erzwingen, dass die Versionen im Stash den Originalen im Repository vorgezogen werden?

Vielen Dank

175
Stefan

Verwenden git checkout anstatt git stash apply:

$ git checkout stash -- .
$ git commit

Dadurch werden alle Dateien im aktuellen Verzeichnis auf ihre gespeicherte Version zurückgesetzt.


Wenn es Änderungen an anderen Dateien im Arbeitsverzeichnis gibt, die beibehalten werden sollten, ist dies eine weniger umständliche Alternative:

$ git merge --squash --strategy-option=theirs stash

Wenn es Änderungen im Index gibt oder die Zusammenführung Dateien mit lokalen Änderungen berührt, lehnt git die Zusammenführung ab. Einzelne Dateien können mit aus dem Stash ausgecheckt werden

$ git checkout stash -- <paths...>

oder interaktiv mit

$ git checkout -p stash
293
tom

git stash show -p | git apply

und dann git stash drop, wenn Sie die gestauten Gegenstände ablegen möchten.

4
Hasan TBT

Zwingen git stash pop diesen Befehl ausführen

git stash show -p | git apply && git stash drop
1
NetEmmanuel