Lorsque je déplace un fichier dans git en utilisant git-mv, l'état montre que le fichier a été renommé et même si je modifie certaines parties, il considère toujours que c'est presque la même chose (ce qui est bien car cela me permet de suivre l'historique de celui-ci) .
Lorsque je copie un fichier, le fichier original a un historique que j'aimerais associer à la nouvelle copie.
J'ai essayé de déplacer le fichier puis d'essayer de revérifier l'emplacement d'origine - une fois déplacé, git ne me permettra pas de récupérer l'emplacement d'origine.
J'ai essayé de faire une copie du système de fichiers, puis d'ajouter le fichier - git le répertorie comme un nouveau fichier.
Existe-t-il un moyen de faire en sorte que git enregistre une opération de copie de fichier d'une manière similaire à la façon dont il enregistre un fichier renommer / déplacer où l'historique peut être retracé jusqu'au fichier d'origine?
diff.renames
surcopies
(par exemple 'git config diff.renames copies
'). Je conviens que c'est un peu contre-intuitif.git log -L123,456:file.xyz
) qui suit correctement les renommés, mais pas les copies, et vous ne pouvez pas passer --follow dans ce cas; aussi, AFAICT, cela ne fonctionne pas avec git blame.2020-05-19: La solution suivante présente les avantages de ne pas modifier le journal du fichier d'origine, de ne pas créer de conflit de fusion et d'être plus courte.
Vous pouvez forcer Git à détecter l'historique du fichier copié en trois commits:
--no-ff
.(Les crédits reviennent à Raymond Chen .)
La première solution comportait quatre commits:
(Solution tirée de https://stackoverflow.com/a/44036771/1389680 .)
la source
move
etrename
?mv
pour les deux opérations? J'utilisais «déplacer» pour le cas qui peut impliquer de changer le répertoire du fichier, et «renommer» pour le cas où ce n'est pas le cas.git mv orig new
? Par "lu l'original", voulez-vous direcp new orig && git add orig
?