web-dev-qa-db-fra.com

Stockage des fichiers supprimés

Dites que j'ai un fichier dans ma repostiory git appelé foo.

Supposons qu'il ait été supprimé avec rm (et non git rm). Alors le statut de git montrera:

Changes not staged for commit:

    deleted: foo

Comment organiser cette suppression de fichier individuelle?

Si j'essaye:

git add foo

Ça dit:

'foo' did not match any files.
437
Andrew Tomazos

Utilisez git rm foo pour préparer le fichier à la suppression. (Cela supprimera également le fichier du système de fichiers, s'il n'avait pas déjà été supprimé. Il peut, bien sûr, être restauré à partir de git, puisqu'il a déjà été archivé.)

Pour préparer le fichier à être supprimé sans le supprimer du système de fichiers, utilisez git rm --cached foo

462
Wooble

Vous pouvez faire git add -u.

Cela vous aidera si vous souhaitez supprimer plusieurs fichiers sans utiliser git rm pour chacun d'entre eux.

380
Sailesh

Pour organiser tous les fichiers supprimés manuellement, vous pouvez utiliser:

git rm $(git ls-files --deleted)

Pour ajouter un alias à cette commande en tant que git rm-deleted, exécutez:

git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
140
Ian Mackinnon

ajouter tous les fichiers supprimés prêts

git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all

merci de vérifier pour vous assurer

git status

vous devriez être bon pour aller

32
chet corey

Depuis Git 2.0.0, git add organisera également les suppressions de fichiers.

Git 2.0.0 Docs - git-add

<pathspec>…

Fichiers à ajouter du contenu. Des fichiers (par exemple * .c) peuvent être utilisés pour ajouter tous les fichiers correspondants. De plus, un nom de répertoire principal (par exemple, dir pour ajouter dir/fichier1 et dir/fichier2) peut être attribué pour mettre à jour l'index afin qu'il corresponde à l'état actuel du répertoire dans son ensemble (par exemple, la spécification de dir n'enregistrera pas uniquement un fichier dir/fichier1 modifié dans l'arborescence de travail, un fichier dir/file2 ajouté à l'arborescence de travail, mais également un fichier dir/file3 supprimé de l'arborescence de travail. Notez que les anciennes versions de Git ignoraient les fichiers supprimés; utilisez l'option --no-all si vous souhaitez ajouter des fichiers modifiés ou nouveaux mais en ignorer les supprimés.

12
peflorencio

Vous pouvez utiliser

git rm -r --cached -- "path/to/directory"

mettre en scène un répertoire supprimé.

7
GameScripting