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.
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
Vous pouvez faire git add -u
.
Cela vous aidera si vous souhaitez supprimer plusieurs fichiers sans utiliser git rm
pour chacun d'entre eux.
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)'
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
Depuis Git 2.0.0, git add
organisera également les suppressions de fichiers.
<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.
Vous pouvez utiliser
git rm -r --cached -- "path/to/directory"
mettre en scène un répertoire supprimé.