Question

Je suis en cours d'exécution d'un environnement mixte, et de garder un dépôt central, nue où je tire et pousse la plupart de mes affaires. Ce référentiel centralisé fonctionne sur Linux, et je vérifie à Windows XP / 7, Mac et Linux. Dans tous les dépôts que je mets la ligne suivante dans mon .git / config:

[core]
     autocrlf = true

Je n'ai pas le drapeau partout safecrlf=true. La première fois quand je modifie des choses sur mon une machine Windows (XP) il n'y a pas de problème et quand je regarde la diff, il semble bien. Mais quand je fais la même chose sur l'autre machine Windows (7), toutes les lignes sont présentés comme changé, mais les fins de ligne locales sont \ r \ n comme prévu (lors d'un contrôle dans un éditeur hexadécimal). De même pour une boîte MacOSX. Parfois, je reçois le sentiment que les différents systèmes se débattent sur les terminaisons de ligne, mais je ne peux pas être sûr (je perdre la trace de tous les temps que je change les fichiers spécifiques).

Je ne pas utiliser d'avoir l'ensemble de autocrlf, mais mettre le drapeau plusieurs mois en arrière. Cela pourrait-il être à l'origine de mes problèmes actuels? Ai-je besoin de tout clone à nouveau de perdre un peu vieux bagages? Ou y at-il d'autres choses que les besoins aussi la configuration? J'ai essayé git checkout -- . environ un million de fois, mais sans succès.

Était-ce utile?

La solution

Vous devez définir autocrlf à true sur chaque machine que vous travaillez (en global), ou pour chaque copie du dépôt (en local). Les paramètres du repo que vous clonée à partir ne sont pas appliqués à votre repo local.

L'autre réponse est que vous avez un mélange de fins de ligne dans les fichiers de votre repo.

Un filtre sur la caisse pourrait être mis en place pour chacun des types de fichier source pour corriger leurs fins de ligne, et sur checkin pour les remettre à la norme de prise en pension.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top