Je viens de lire la page de manuel git-blame une fois et remarqué cette partie:Comment puis-je détecter du code copié-collé à l'aide de git?
Une manière particulièrement utile est de voir si un fichier ajouté a des lignes créées par copier-coller à partir de fichiers existants. Parfois cela indique que le développeur était bâclé et n'a pas refacturé le code correctement. Vous pouvez d'abord trouver le commettras qui a introduit le fichier avec:
git log --diff-filter = A = --pretty court - foo
puis annoter le changement entre l'engagement et de ses parents, à l'aide commit ^! notation:
git blame -C -C -f $ commit ^! - foo
Cela semble très intéressant, mais je ne Grok pas tout à fait comment cela fonctionne, et pourquoi. Je me demande s'il peut être utilisé dans un crochet git pour détecter copier & code collé. Peut-être un expert git peut-être expliquer l'effet de l'utilisation des commandes git ci-dessus, et s'il est possible d'utiliser quelque chose comme ça pour faire git montrer s'il y a duplication de code (peut-être en utilisant l'indice de similarité calculé lors du renommage des fichiers)?
Merci pour les explications! Le double drapeau '-C -C' pour git blame est vraiment intéressant –