J'utilise des onglets pour l'indentation dans mes programmes python, mais je voudrais collaborer (en utilisant git) avec des personnes qui utilisent des espaces à la place.
Existe-t-il un moyen pour git de convertir automatiquement entre les espaces et les tabulations (par exemple, 4 espaces = 1 tabulation) lors de la poussée / récupération? (similaire à la conversion CR / LF)
git
tabs
indentation
Olivier Verdier
la source
la source
Réponses:
Voici la solution complète:
Dans votre référentiel, ajoutez un fichier
.git/info/attributes
qui contient:Linux / Unix
Exécutez maintenant les commandes:
OS X
Installez d'abord les coreutils avec l'infusion:
Exécutez maintenant les commandes:
Tous les systèmes
Vous pouvez maintenant consulter tous les fichiers de votre projet. Vous pouvez le faire avec:
et tous les fichiers python auront désormais des onglets au lieu d'espaces.
Modifier : modification de la commande de retrait forcé. Bien sûr, vous devez d'abord engager votre travail.
la source
homebrew
, puis exécutezbrew install coreutils
).Oui, une solution potentielle consiste à utiliser un pilote de filtre d'attribut git (voir aussi le livre GitPro ), pour définir un mécanisme de maculage / nettoyage.
De cette façon:
Vous pouvez déclarer ce pilote de filtre (nommé ici '
tabspace
') dans le.git/info/attributes
(pour un filtre appliqué à tous les fichiers du dépôt Git), avec le contenu suivant:Exécutez maintenant les commandes:
Voir la réponse d' Olivier pour un exemple concret de travail d'un tel ensemble d'instructions pour nettoyer / nettoyer.
la source
--global
drapeau, car cela impliquerait d'envoyer des espaces à chaque projet de collaboration ....gitattributes
. Mais oui, il est plus facile de comprendre si la configuration est conservée localement au dépôt. J'ai édité la réponse.Informations très utiles pour tous ceux qui utilisent GitHub (ou un autre service similaire)
~/.gitconfig
Ensuite, j'ai deux fichiers:
attributes
et
attributes2
Travailler sur des projets personnels
De cette façon, lorsque vous poussez enfin votre travail sur github, cela ne semblera pas idiot dans la vue de code avec
8 space tabs
laquelle est le comportement par défaut dans tous les navigateurs.Contribuer à d'autres projets
De cette façon, vous pouvez travailler avec des onglets normaux sur des
2 space indented
projets.Bien sûr, vous pouvez écrire une solution similaire pour la conversion,
4 space to 2 space
ce qui est le cas si vous souhaitez contribuer à des projets publiés par moi et que vous avez tendance à utiliser 2 espaces lors du développement.la source
.gitattributes
fichier dans votre référentielSi vous êtes sur Windows, vous avez quelques étapes supplémentaires pour que la solution de @Olivier Verdier fonctionne.
la source