Angenommen, ich habe eine Datei in meinem Git-Repostiory mit dem Namen foo
.
Angenommen, es wurde mit rm
(nicht mit git rm
) gelöscht. Dann zeigt der Git-Status:
Changes not staged for commit:
deleted: foo
Wie stufe ich diese individuelle Dateilöschung ein?
Wenn ich es versuche:
git add foo
Es sagt:
'foo' did not match any files.
Verwenden Sie git rm foo
, um die Datei zum Löschen vorzubereiten. (Dies löscht auch die Datei aus dem Dateisystem, wenn sie zuvor nicht gelöscht wurde. Sie kann natürlich aus Git wiederhergestellt werden, da sie zuvor eingecheckt wurde.)
Verwenden Sie git rm --cached foo
, um die Datei zum Löschen vorzubereiten, ohne sie aus dem Dateisystem zu löschen.
Du könntest git add -u
machen.
Dies ist hilfreich, wenn Sie mehrere Dateien löschen möchten, ohne git rm
für jede einzelne.
Zum Bereitstellen aller manuell gelöschten Dateien können Sie Folgendes verwenden:
git rm $(git ls-files --deleted)
Um diesem Befehl einen Alias als git rm-deleted
hinzuzufügen, führen Sie Folgendes aus:
git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
hinzufügen aller fertig gelöschten Dateien
git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all
ich danke Ihnen, überprüfen Sie, um sicherzustellen, dass
git status
du solltest bereit sein zu gehen
Seit Git 2.0.0 werden mit git add
auch Dateilöschungen durchgeführt.
<Pfadangabe>…
Dateien, aus denen Inhalte hinzugefügt werden sollen. Mit Fileglobs (z. B. * .c) können alle passenden Dateien hinzugefügt werden. Es kann auch ein führender Verzeichnisname (z. B. dir, um dir/file1 und dir/file2 hinzuzufügen) angegeben werden, um den Index so zu aktualisieren, dass er dem aktuellen Status des gesamten Verzeichnisses entspricht (z. B. wenn dir angegeben wird, wird nicht nur eine modifizierte Datei dir/file1 aufgezeichnet Im Arbeitsbaum wird eine Datei dir/file2 zum Arbeitsbaum hinzugefügt, aber auch eine Datei dir/file3, die aus dem Arbeitsbaum entfernt wurde. Beachten Sie, dass ältere Versionen von Git entfernte Dateien ignorierten. Verwenden Sie die Option --no-all, wenn Sie geänderte oder neue Dateien hinzufügen, entfernte jedoch ignorieren möchten.
Sie können verwenden
git rm -r --cached -- "path/to/directory"
ein gelöschtes Verzeichnis bereitstellen.