Peut git être dit d'utiliser des espaces dans ~/.gitconfig?

quand j'utilise git config --global <some option> <some value>, git écrira l'entrée correspondante dans mon ~/.gitconfig, en retrait par un onglet. Depuis mon ~/.gitconfig est sous contrôle de version, et je veux pas être un gâchis, je dois ensuite aller à la main et remplacer l'onglet avec des espaces.

Git être dit d'utiliser des espaces automatiquement lors de l'ajout d'entrées à ~/.gitconfig?

(Veuillez noter que ceci est à propos de l'indentation dans le code que je suis commettre avec Git, mais plutôt l'indentation dans le propre fichier de configuration de Git.)

9
demandé sur Radon Rosborough 2016-10-17 19:40:00

1 réponses

C'est ce qui a fonctionné pour moi (notez que comme @rasjani a souligné dans un commentaire, il n'y a pas d'option pour prévenir git de l'insertion d'un onglet dans la première place lors de l'utilisation de git config.)


Créer le filtre

Créer un filter pour convertir les tabulations en espaces automatiquement dès que vous faites un git add pour un fichier. Ce filtre est créé par

git config --global filter.spacify.clean 'expand --tabs=4 --initial'

expand le commandement dit que convert each tab character at the beginning of line to 4 space characters

par conséquent, la définition du filtre inclut à la fois et quand il le fait (c'est à dire pour lequel git opération).

(Sur OSX, vous devez utiliser gexpandaprès installation de coreutils en faisant un brew install coreutils)

bien sûr, vous devez décider de la portée (--system,--global ou la valeur par défaut --local) de ce qui précède configuration.


spécifiez les fichiers / Patterns de chemin auxquels le filtre sera appliqué

Par exemple, pour votre dépôt, créez un .git/info/attributes avec le contenu suivant:

.* filter=spacify

Ceci dit que apply the spacify filter to any files that match the pattern .* avant que ces fichiers ne soient envoyés au dépôt.


notez que ce qui précède n'affectera que les nouveaux fichiers ajoutés au dépôt. Si vous voulez que ce être fait pour tous les fichiers existants, vous pouvez soit exécuter expand manuellement ou, pourrait faire en sorte que git le fasse pour nous comme ça:

git config --global filter.spacify.smudge 'expand --tabs=4 --initial'
git checkout HEAD -- **

spacify filtre smudge provoquera l'application du filtre aux fichiers en cours de vérification. Après la caisse, vous devriez voir un tas de changements dans les fichiers de points qui avaient des onglets principaux convertis en espaces. Re-commettre ces et à partir de dorénavant, l' smudge et clean duo gardera vos fichiers dotfiles tab-gratuitement!


mise à Jour -- La demande de pull!

Voici un pull request pour votre repo : https://github.com/raxod502/radian/pull/156

4
répondu Ashutosh Jindal 2016-10-17 20:25:55