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.)
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 gexpand
aprè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