Je suis relativement nouveau dans git, j'ai utilisé Subversion avant.
J'ai remarqué que la plupart des interfaces graphiques git et des plugins IDE ne semblent pas pouvoir afficher l'historique d'un fichier si le fichier a été renommé. Quand j'utilise
git log --follow
sur la ligne de commande, je peux voir le journal entier à travers les renommés.
Selon Linus Torvalds, le commutateur --follow est un plaisir pour «SVN noob», les utilisateurs sérieux de git ne l'utilisent pas:
--follow est un hack total, destiné à satisfaire les anciens utilisateurs de SVN qui n'ont jamais rien su de choses comme la parentalité ou de jolis graphes de révision de toute façon.
Ce n'est pas totalement fondamental, mais l'implémentation actuelle de "--follow" est vraiment une chose de prétraitement rapide boulonnée sur la logique de marche des révisions, plutôt que d'être vraiment intégrale.
Il a littéralement été conçu comme un plaisir "SVN noob", pas comme une "vraie fonctionnalité git". L'idée était que vous vous échappiez de l'état d'esprit (brisé) de penser que les renommés comptent dans l'ensemble.
Ma question : Comment les utilisateurs hardcore de git parmi vous obtiennent-ils l'historique d'un fichier lorsqu'il a été renommé? Quelle est la «vraie» façon de faire cela?
/bin/mv oldfile newfile
), mais que vous le faites ensuite git add newfile; git rm oldfile
, le résultat est indiscernable de celui de git mv oldfile newfile
.
git log --follow
s'améliore un peu avec git 2.9 (juin 2016): voir ma réponse ci
--color-moved
quand vous diff
.
git mv oldfile newfile
ne cause pas le changement de nom à enregistrer du tout - il est tout de même que la suppression d' un fichier et d' ajouter un autre. git ne fonctionne que sur les renommés et les copies de l'état de l'arborescence à chaque commit après coup.