N'utilisez que git rm --cached [file]
pour supprimer un fichier de l'index.
git reset <filename>
peut être utilisé pour supprimer les fichiers ajoutés de l'index, à condition que les fichiers soient jamais commis .
% git add First.txt
% git ls-files
First.txt
% git commit -m "First"
% git ls-files
First.txt
% git reset First.txt
% git ls-files
First.txt
NOTE : git reset First.txt
n'a aucun effet sur l'index après le commit.
Ce qui m'amène à parler de git restore --staged <file>
. Il peut être utilisé pour (vraisemblablement après le premier commit) supprimer les fichiers ajoutés de l'index si les fichiers sont jamais commis .
% git add Second.txt
% git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: Second.txt
% git ls-files
First.txt
Second.txt
% git restore --staged Second.txt
% git ls-files
First.txt
% git add Second.txt
% git commit -m "Second"
% git status
On branch master
nothing to commit, working tree clean
% git ls-files
First.txt
Second.txt
Desktop/Test% git restore --staged .
Desktop/Test% git ls-files
First.txt
Second.txt
Desktop/Test% git reset .
Desktop/Test% git ls-files
First.txt
Second.txt
% git rm --cached -r .
rm 'First.txt'
rm 'Second.txt'
% git ls-files
tl;dr Regardez les 15 dernières lignes. Si vous ne voulez pas être confondu avec le premier commit, le second commit, avant le commit, après le commit.... utilisez toujours git rm --cached [file]
6 votes
Voulez-vous dire "rétablir ce qui était là avant" ou "supprimer, car je ne veux plus de ce fichier" ?
1 votes
Dans mon cas, c'est la même chose car le fichier n'existait pas avant...
0 votes
@hcs42 la réponse acceptée est fausse et entraînera la suppression de fichiers pour de nombreuses personnes. La deuxième réponse la plus populaire (
git reset <file>
) est correcte. Vous serait-il possible de déplacer la coche verte vers la bonne réponse ?1 votes
@MartinJambon Merci d'avoir mis en évidence le problème que certaines personnes ont rencontré. Le problème était que ma question pouvait être comprise de deux façons. La réponse acceptée est parfaite pour la question que je me posais, mais elle a posé des problèmes à certaines personnes qui voulaient une réponse à une question différente. J'ai modifié la question pour inclure les deux questions.
0 votes
@hcs42 génial, merci !