web-dev-qa-db-fra.com

Ligne Git core.autocrlf mettant fin au paramètre par défaut

J'essaie de comprendre quelle est la valeur par défaut pour core.autoclrf dans Git si l'utilisateur ne modifie pas ce paramètre.

J'ai regardé dans la documentation mais je ne trouve pas cette information. Pouvez-vous, s'il vous plaît, m'orienter dans la bonne direction?

Plus précisément, lors d'une nouvelle installation de Git, Git convertirait-il automatiquement les fins de ligne Windows en Unix lors de la validation d'un dépôt à partir d'un système Windows?

Merci!

32
Pensierinmusica

En vérifiant le code source git , core.autocrlf est défini sur false par défaut. (Et cela depuis l'introduction initiale de la propriété le 13 février 2007 , bien qu'il ait depuis été converti d'une valeur statique en une constante.)

Le programme d'installation de Windows vous oblige à choisir une valeur pour cette propriété qui est explicitement définie dans la configuration du système git.

26
LightBender

Il est difficile de trouver cela, mais je pourrais comprendre par essais et erreurs que:

  • la valeur par défaut est "false"

  • Le programme d'installation de Windows vous permet de choisir le comportement souhaité, mais par défaut (si vous installez sans modifier les paramètres proposés), il le définit sur "true". Ce n'est pas le logiciel par défaut, le programme d'installation définit le paramètre système core.autocrlf.

"false" signifie aucun traitement sur les fins de ligne "true" signifie l'archivage en tant que LF et l'extraction selon le système (CRLF sur Windows et LF sur Unix) .

Lorsque Unix et Windows sont tous deux utilisés, il est conseillé d'utiliser "false" sur Unix (car la conversion automatique peut casser certains fichiers binaires qui ressemblent à des fichiers texte en ligne et Unix utilise LF de toute façon) et "true" sous Windows (sinon le référentiel est rempli de CRLF qui pose des problèmes de compatibilité).

7
Claudio

Vous pouvez répertorier toutes les valeurs-clés de configuration en émettant cette commande

git config --list

Et comme je le vois, la valeur par défaut est

core.autocrlf = true

Bien que ce soit le paramètre que j'ai choisi (ou mieux pour dire "pas touché") lors de l'installation de Git pour Windows

1
Dmitriy

Pour les besoins de la situation spécifique d'OP, et également en cas de différences entre plates-formes, le fichier .gitconfig global et le fichier .gitconfig local, la meilleure façon de déterminer cela devrait être d'exécuter:

git config auto.crlf

après l'installation propre de Git pour savoir quel paramètre prévaut.

Notez que la sortie de la commande changera en fonction de votre répertoire de travail actuel (et de son .gitconfig local)


REMARQUE:

Le commentaire décrivant la même commande sur Unix fonctionne réellement, mais poster avait utilisé la mauvaise clé de configuration. Ce doit être core.autocrlf, pas autocrlf.

La documentation sur git-scm.com/book/en/v2/Customizing-Git-Git-Configuration répertorie trois options mais ne dit pas laquelle est par défaut, et sur mon installation propre sur Ubuntu git config --list ne donne aucune entrée pour autocrlf , git config --get autocrlf renvoie une erreur: la clé ne contient pas de section: autocrlf. Vraisemblablement, cela signifie que la valeur par défaut est fausse, mais il serait bon que cela soit confirmé.

0
teebszet