Bon, alors j'ai ajouté le fichier .gitattributes
avec des lignes comme celle-ci
*.css text
*.js text
etc...
J'ai ensuite suivi les instructions de la page http://git-scm.com/docs/gitattributes#_checking-out_and_checking-in
$ rm .git/index # Remove the index to force Git to
$ git reset # re-scan the working directory
$ git status # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"
Mais maintenant, ma copie de travail a toujours le retour chariot! J'ai des fichiers non suivis que j'aimerais conserver. Comment puis-je avoir à nouveau git checkout la branche master avec les fichiers normalisés?
Je sais que les fichiers sont normalisés dans le référentiel, car lorsque je clone le référentiel, je dispose de tous les fichiers sans les retours chariot.
Ah ah! Extraire la validation précédente, puis extraire le maître.
git checkout HEAD^
git checkout -f master
Comme d'autres l'ont fait remarquer, on pourrait simplement supprimer tous les fichiers du référentiel, puis les extraire. Je préfère cette méthode et cela peut être fait avec le code ci-dessous
git ls-files -z | xargs -0 rm
git checkout -- .
ou une ligne
git ls-files -z | xargs -0 rm ; git checkout -- .
Je l'utilise tout le temps et je n'ai encore trouvé aucun inconvénient!
Pour plus d'explications, le -z
ajoute un caractère nul à la fin de chaque entrée entrée par ls-files
, et le -0
indique à xargs
de délimiter le résultat reçu par ces caractères nuls.