Sans un peu d'informations sur ce que sont les fichiers dans votre espace de stockage (code source pure, les images, les fichiers exécutables, ...), c'est un peu dur de répondre à la question :)
À côté de cela, je vais considérer que vous êtes prêt à défaut de LF comme les fins de ligne dans votre répertoire de travail parce que vous êtes prêt à faire assurez-vous que les fichiers texte ont LF fins de ligne dans votre .dépôt git si vous travaillez sur Windows ou Linux. En effet, mieux vaut prévenir que guérir....
Cependant, il existe une meilleure alternative: bénéficiez de LF en fin de ligne, dans votre Linux workdir, CRLF les fins de ligne dans votre Windows workdir ET LF en fin de ligne, dans votre référentiel.
Comme vous êtes partiellement à travailler sur Linux et Windows, assurez - core.eol
est définie à l' native
et core.autocrlf
est définie à l' true
.
Ensuite, remplacez le contenu de votre .gitattributes
le fichier avec les éléments suivants
* text=auto
Cela vous permettra de Git poignée automagiques les fins de ligne de conversion pour vous, sur les validations et les extractions. Les fichiers binaires ne sera pas modifié, les fichiers détectés comme étant un fichier texte va voir la fin de ligne, converti à la volée.
Cependant, comme vous le savez, le contenu de votre dépôt, vous pouvez donner à Git d'une main et de l'aider à détecter les fichiers texte à partir de fichiers binaires.
À condition que vous travaillez sur un C en fonction de traitement d'image de projet, remplacer le contenu de votre .gitattributes
le fichier avec les éléments suivants
* text=auto
*.txt text
*.c text
*.h text
*.jpg binary
Cela permettra de s'assurer que les fichiers dont l'extension est c, h, ou txt seront stockées avec LF fins de ligne dans votre pension et natif de fins de ligne dans le répertoire de travail. Les fichiers Jpeg ne sera pas touché. Tous les autres seront bénéficier de la même automagic de filtrage comme vu ci-dessus.
Afin d'obtenir une obtenir une compréhension plus profonde de l'intérieur les détails de tout cela, je vous suggère de vous plonger dans ce très bon post "l'Esprit à la fin de votre ligne" de Tim Clem, un Githubber.
Comme un exemple réel, vous pouvez aussi coup d'œil à cette commettre où ces changements à un .gitattributes
le fichier sont démontrés.
Mise à JOUR de la réponse en considérant le commentaire suivant
En fait, je ne veux pas CRLF dans mes répertoires Windows, parce que mon environnement Linux est en fait une VirtualBox partage le répertoire Windows
Du sens. Merci pour la clarification. Dans ce contexte spécifique, l' .gitattributes
fichier lui-même ne sera pas assez.
Exécutez les commandes suivantes à l'encontre de votre référentiel
$ git config core.eol lf
$ git config core.autocrlf input
Que votre dépôt est partagé entre Linux et Windows, ce sera mettez à jour le fichier de configuration pour l'environnement. core.eol
sera assurez-vous que les fichiers de texte ours LF fins de ligne sur les extractions. core.autocrlf
veillera à ce potentiel CRLF dans des fichiers texte (résultant d'une opération copier/coller par exemple) seront convertis en FL dans votre référentiel.
En option, vous pouvez aider à Git distinguer ce qui est un fichier texte par la création d'un .gitattributes
le fichier contenant quelque chose de semblable à la suivante:
# Autodetect text files
* text=auto
# ...Unless the name matches the following
# overriding patterns
# Definitively text files
*.txt text
*.c text
*.h text
# Ensure those won't be messed up with
*.jpg binary
*.data binary
Si vous avez décidé de créer un .gitattributes
le fichier, de le commettre.
Enfin, s'assurer git status
mentions "rien à commettre (répertoire de travail propre)", puis effectuez l'opération suivante
$ git checkout-index --force *
Cela permettra de recréer les fichiers dans votre répertoire de travail, en tenant compte de vos modifications de configuration et l' .gitattributes
le fichier et remplacer tout le potentiel négligé CRLF dans vos fichiers texte.
Une fois cela fait, tous les fichiers texte dans votre répertoire de travail portera LF en fin de ligne, et git status
doit encore examiner le workdir aussi propre.