Als ich git status
laufen, ich ein paar Zeilen der Form habenEntfernen Sie alle gelöschten Dateien aus in Git „geändert, aber nicht aktualisiert“
deleted: dir/file.js
Ich kann mit git checkout -- dir/file.js
jeden einzeln entfernen, aber es muss sei eine weniger sorgfältige Art, dies zu tun. (Und ja, ich weiß, ich sollte git rm
in erster Linie verwendet haben ...)
[aktualisieren: Wie Mark Punkte unten aus, git checkout --
stellt tatsächlich eine gelöschte Datei, während ich gedacht hatte, dass sie gelöscht es aus dem Git-Index. Ich war ein wenig verwirrt, denn wenn man git status
laufen, heißt es:
use "git checkout -- <file>..." to discard changes in working directory
Für mich „Änderungen verwerfen“ bedeutet nicht „Wiederherstellung einer Datei, die Sie gelöscht haben,“ aber in git Terminologie Ich nehme an, das macht Sinn .]
ich verstehe nicht. 'checkout' wird diese gelöschten Dateien wiederherstellen, aber Sie sagen, Sie hätten' git rm' an erster Stelle verwenden sollen, um die Dateien zu entfernen. Möchten Sie diese Dateien in Ihrem Arbeitsbaum wiederherstellen oder sie aus dem Index sowie aus Ihrem Arbeitsbaum entfernen? –
Ich möchte sie auch aus dem Index entfernen, was 'git checkout - [Dateiname]' tut, während 'git checkout [Dateiname]' die Dateien wiederherstellt. –
Das ist nicht richtig, ich fürchte - das '-' in 'git checkout -' ist nur eine Möglichkeit, um sicherzustellen, dass '' als Pfad und nicht als Name einer Verzweigung (oder eines Tags) interpretiert wird oder ein Commit). Wenn '' nicht der Name einer Verzweigung (& c.) Ist, haben die beiden von Ihnen genannten Formulare denselben Effekt: Sie stellen die Datei im Index wieder her. –