Dans chaque commit, git enregistre l'état de votre arborescence des sources, plutôt que de savoir si il y avait un changement de nom (ou autre) qui a produit cet état. Donc, si vous venez de renommer un fichier normalement (plutôt qu'avec git mv
), la sortie d' git status
sera quelque chose comme:
# On branch master
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: foo.txt
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bar.txt
no changes added to commit (use "git add" and/or "git commit -a")
Si vous décidez que vous voulez enregistrer l'état de l'arbre avec le fichier renommé, vous pouvez préparer ce changement avec:
git rm foo.txt
git add bar.txt
... puis, git status
vais vous montrer:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: foo.txt -> bar.txt
... et on ne peut s'engager qu'avec git commit
comme d'habitude:
git commit -m "Renamed foo.txt to bar.txt"
Le point important est de garder à l'esprit est que lorsque git vous indique qu'un fichier a été renommé lorsque vous affichez l'histoire, c'est parce qu'il a travaillé que renommer, il s'est passé en comparant l'état de l'arbre à partir d'une version à l'autre - il ne veut pas dire qu'une opération de changement de nom a été enregistré dans l'histoire.