1393 Stimmen

Entfernen mehrerer Dateien aus einem Git Repo, die bereits von der Festplatte gelöscht wurden

Ich habe ein Git-Repository, aus dem ich vier Dateien gelöscht habe, indem ich rm ( no git rm ), und mein Git-Status sieht folgendermaßen aus:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

Wie entferne ich diese Dateien aus Git, ohne jede einzelne Datei manuell hinzufügen zu müssen?

git rm file1 file2 file3 file4

Idealerweise suche ich nach etwas, das genauso funktioniert wie die git add . tut, wenn das möglich ist.

3 Stimmen

12 Stimmen

@seth, es ist nicht immer bequem zu benutzen git rm Die Entfernung könnte mit einem anderen Tool, einer IDE oder einem Dateimanager erfolgt sein. Visual Studio zum Beispiel kann beim Entfernen/Umbenennen von Dateien eine Qual sein.

75 Stimmen

Igitt, zu fragen, warum jemand nicht die git rm ist ein bisschen wie die Frage, warum sie nicht git vim o git cd . Git sollte einen eingebauten Befehl oder Alias haben, um gelöschte Dateien aus dem Staging zu entfernen, und man sollte nicht in SO nachschlagen oder in der Mittagspause Manpages lesen müssen.

2voto

Haris Krajina Punkte 14008

Hinzufügen eines System-Alias für die Bereitstellung gelöschter Dateien als Befehl rm-all

UNIX alias rm-all='git rm $(git ls-files --deleted)'

Windows doskey rm-all=bash -c "git rm $(git ls-files --deleted)"

Note

Windows muss Folgendes haben bash installiert.

1voto

dahe Punkte 706

Löschen aller Dateien mit der Endung .log aus dem Repo, aber nicht aus dem lokalen Speicher

git rm --cached $(git ls-files | grep "\.log$")

1voto

Sawyer Punkte 528

Für Visual Studio Projekt

'git ls-files --deleted | sed 's/(.*)/"\1"/'| xargs git rm' 

was nützlich ist, wenn der Pfad der gelöschten Datei Leerzeichen enthält

1voto

Jeremy French Punkte 11087

Etwas wie

git status | sed -s "s/^.*deleted: //" | xargs git rm 

kann es tun.

0 Stimmen

2019 git Version 2.13.3: git diff --diff-filter=D --name-only | xargs git rm

0voto

Ricardolcm Punkte 69

Ganz einfach

git add . && git commit -m "the message for commit" && git push

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X