Disons que j'ai un fichier dans mon référentiel git appelé foo
.
Supposons qu'il ait été supprimé avec rm
(pas git rm
). Le statut de git affichera alors:
Changes not staged for commit:
deleted: foo
Comment organiser cette suppression individuelle de fichiers?
Si j'essaye:
git add foo
Ça dit:
'foo' did not match any files.
Réponses:
Depuis Git 2.0.0,
git add
mettra également en scène les suppressions de fichiers.Git 2.0.0 Docs - git-add
la source
Utilisation
git rm foo
pour mettre en scène le fichier à supprimer. (Cela supprimera également le fichier du système de fichiers, s'il n'avait pas été supprimé auparavant. Il peut, bien sûr, être restauré à partir de git, car il a été précédemment archivé.)Pour préparer le fichier à supprimer sans le supprimer du système de fichiers, utilisez
git rm --cached foo
la source
--cache
indicateur pour supprimer uniquement le fichier du référentiel et laisser intact le système de fichiers.git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
. D'autres réponses semblent montrer comment organiser correctement la suppression des fichiers (mais pas comment mettre en scène les fichiers déjà supprimés). ps. laxargs
commande basée fonctionne pour moi sur Ubuntu 12.04, mais quand je le fais manuellement,git add -u deleted_file.txt
cela ne fonctionne pas. Mon git est 1.7.9.5git rm
mettra volontiers en scène un fichier à supprimer même s'il a déjà été supprimé du système de fichiers. Et comme le remarque OP sur une autre réponse, ils voulaient mettre en scène un fichier spécifique qui avait déjà été supprimé.git rm
ne met pas en scène les fichiers déjà supprimés. Il jette cette erreur:fatal: pathspec '~.SLDASM' did not match any files
. Voici des écrans avec preuve: i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png . La première capture d'écran montre clairement que 2 fichiers sont supprimés et non mis en scène, la deuxième capture d'écran montre que lorsque je tapegit rm "~$Box.SLDASM"
, cela génère cette erreur.Même si son utilisation est correcte
git rm [FILE]
, vous pouvez également le fairegit add -u
.Selon la
git-add
documentation:Sur lequel l'index sera actualisé et les fichiers seront correctement organisés.
la source
git add -A .
ajoutera toutes les modifications, je voulais spécifiquement mettre en scène un fichier supprimé.git add -u FolderWithDeletedFiles/
et il a fait ce que je veux, merciPour mettre en scène tous les fichiers supprimés manuellement, vous pouvez utiliser:
Pour ajouter un alias à cette commande en tant que
git rm-deleted
, exécutez:la source
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
ajouter tous les fichiers supprimés prêts
merci de vérifier pour vous assurer
tu devrais être prêt à partir
la source
rm <file>
, mais plutôtgit rm <file>
git version 2.15.2 (Apple Git-101.1)
.Vous pouvez utiliser
git rm -r --cached -- "path/to/directory"
pour mettre en scène un répertoire supprimé.
la source
Vous pouvez utiliser cette commande
la source
pour ceux qui utilisent git 2.x + dans powershell:
la source