J'ai d'abord créé une copie, puis j'ai modifié l'un des fichiers.
La capture d'écran ci-dessous est apparue lors de la pull request. Pourquoi cela se produit-il ?
Je n'ai modifié que la ligne 16. Pourquoi le fichier entier semble-t-il différent lorsque l'on compare les fichiers lorsqu'une seule ligne est modifiée ?
Il peut s'agir d'un problème de conversion d'espace et de tabulation, selon certains paramètres des outils de développement que vous utilisez
Windows utilise
CRLF
deux caractères, saut de ligne*Unix et Mac utilisent
LF
les sauts de ligne par défautAinsi, une fois que votre ordinateur Windows aura enregistré la modification, il remplacera automatiquement le
LF
du fichier parCRLF
La solution est la suivante :
Git peut automatiquement convertir le terminateur de ligne CRLF en LF lorsque vous validez, et convertir LF en CRLF lors de l'extraction du code. Utilisez core.autocrlf pour activer cette fonctionnalité Si vous êtes sur un système Windows, définissez-la sur true afin que lors de l'extraction du code, LF soit converti en CRLF :
Les systèmes Linux ou Mac utilisent LF comme terminateur de ligne, vous ne voulez donc pas que Git le convertisse automatiquement lors de l'extraction du fichier ; vous souhaitez absolument le corriger lorsqu'un fichier avec CRLF comme terminateur de ligne est accidentellement introduit. Définissez core.autocrlf sur input pour indiquer à Git de convertir CRLF en LF lors de la soumission et de ne pas convertir lors de l'extraction :
Cela préservera CRLF dans les fichiers extraits sur les systèmes Windows et LF sur les systèmes Mac et Linux, y compris dans les référentiels.
Si vous êtes un programmeur Windows et développez des projets qui s'exécutent uniquement sous Windows, vous pouvez définir false pour annuler cette fonction et enregistrer le caractère de retour chariot dans la bibliothèque :
Vous pouvez vous référer à la documentation officielle chinoise