Je crois que j'ai enfin compris
Si vous modifiez un fichier file_a.txt
puis faire
git add file_a.txt
rm file_a.txt
git commit -m 'Commit message'
Bien que le fichier soit supprimé du répertoire de travail (c'est-à-dire du disque ou de la corbeille), il n'est pas supprimé de la zone de transit, et les modifications apportées à la zone de transit (c'est-à-dire à l'index) seront donc validées.
si, à la place, vous faites
git add file_a.txt
git rm file_a.txt
git commit -m 'Commit message'
Le fichier sera supprimé du disque et de la zone de transit, de sorte que les modifications ne seront pas validées.
Maintenant, si après votre dernier commit, vous faites soit
rm file_a.txt
git commit -m 'Commit message'
ou
git rm file_a.txt
git commit -m 'Commit message'
Cela ne devrait pas faire de différence, car vous n'avez pas apporté de modifications à la zone de transit ou à l'index, de sorte qu'il n'y a qu'une seule copie du fichier dans le répertoire de travail, de sorte que les deux commandes auront le même impact.
En résumé rm
ne supprimera que le disque, et non la zone de transit git rm
supprimera à la fois le disque et la zone de mise à disposition (une zone spéciale de git que vous ne pouvez pas atteindre par des commandes Windows ou linux normales).