232 votes

Est-il possible d’inclure un fichier dans votre .gitconfig

Je voudrais inclure un fichier dans mon .gitconfig qui a les paramètres de mon github - est-ce possible ?

Je peux faire quelque chose comme ceci :

290voto

Mike Morearty Points 3750

Git (1.7.10+) maintenant prend en charge cette syntaxe en .gitconfig:

[include]
    path = /path/to/file

Voir ici pour une description détaillée de le git du changement et des cas limites.

Par ailleurs, un couple de subtilités mérite d'être souligné:

  1. Environnement-l'expansion des variables, par exemple, $HOME, n'est pas pris en charge. (L'Expansion de l' ~ paru dans Git 1.7.10.2.)

  2. Si un chemin d'accès relatif est spécifié, il est relatif à l' .gitconfig fichier qui a l' [include] déclaration. Cela fonctionne correctement, même à travers enchaîné comprend (par exemple, ~/.gitconfig peut avoir:

    [include]
        path = subdir/gitconfig
    

    et subdir/gitconfig peut avoir:

    [include]
        path = nested_subdir/gitconfig
    

    ... qui va provoquer subdir/nested_subdir/gitconfig à être chargé.

  3. Si git ne peut pas trouver le fichier cible, il ignore silencieusement l'erreur. Cela semble être de par leur conception.

16voto

VonC Points 414372

Mise à jour 2012:

Voir Mike Morearty's réponse:

Comprend

Vous pouvez inclure un fichier de configuration à partir d'un autre par la définition de la spéciale, include.path variable le nom du fichier à inclure.
Le fichier inclus est élargi immédiatement, comme si son contenu n'avait été trouvé à l'emplacement de la directive include.
Si la valeur de l' include.path variable est un chemin relatif, le chemin est considéré comme relatif au fichier de configuration dans lequel la directive include a été trouvé.
La valeur de include.path est soumise à l'expansion du tilde: ~/ est développée à la valeur de $HOME, et ~user/ à la valeur indiquée répertoire home de l'utilisateur.


Je ne le crois pas.

Je préfère me dire que ce paramètre dans l' ~/.gitconfig le fichier

Spécifiques à l'utilisateur du fichier de configuration. Aussi appelé "global" dans le fichier de configuration.

De cette façon, il termine l' .gitconfig projet de fichier spécifique, sans être publiées lorsque poussé à GitHub. Voir aussi cette SORTE de réponse pour en savoir plus sur le mondial de fichier de configuration.
Git a 3 fichiers de configuration.


bjeanes ajoute dans les commentaires:

il ressemble à tout le monde raté le point de cette question.
David veut évidemment pousser jusqu'à une pension à tous ses fichiers" (bashrc, gemrc, etc.) Y COMPRIS son .gitconfig , de sorte qu'il peut disposer de toutes ses paramètres sur l'ensemble de ses machines.
Une manière de pousser les parties d'un .gitconfig le fichier en incluant et en ignorant les entrées privées est ce qu'il (et moi aussi), est après.

Une solution possible serait d'utiliser une bavure propre pilote de filtre à décrypter/crypter un fichier avec le privé, des informations sensibles (voir ce fil), afin de compléter un fichier local comme ~/.gitconfig avec la restitution des pièces qui sont pertinentes à ce fichier.

De cette façon, vous pouvez avoir un repo Git avec tous vos fichiers", plus un seul fichier avec des informations chiffrées destiné à être déchiffré et ajoutés à l'dot fichiers.

alt text

En .gitattributes (ou .git/info/a..) utilisation:

myPrivateInfosFile filter=gpg diff=gpg

Dans votre pension .fichier de configuration:

[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt

( GPG-solution basée sur les moyens, bien sûr, que vous ayez communiqué votre privée/clé publique par un autre moyen sur l'ordinateur de destination où vous souhaitez restaurer tous vos fichiers " par le clonage de cette spéciale pensions)

Effectivement, dans votre cas, la purification de script doit être rempli comme il se doit, après avoir déchiffré ce fichier, allez sur et ajouter des éléments pertinents à votre global ~/.gitconfig le fichier (à moins que vous écraser le fichier de configuration global avec un autre emplacement) ou d'autres fichiers " pour cette question.

https://kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread (gpg inconvénients sont discutés plus loin dans ce fil) (ce qui est différent que d'avoir un plein encrytped repo Git, comme discuté ici)

12voto

NicDumZ Points 5566

À partir de mai 2010, ce n’est pas possible. Malheureusement.

Référence: mai 2010 git mailing liste thread propose d’ajouter cette fonctionnalité : http://kerneltrap.org/mailarchive/git/2010/5/8/30030/thread

2voto

Geoff Lanotte Points 5531

Je crois que vous pouvez accomplir cela en utilisant defunkt, la plateforme de l'outil. Ceci est un wrapper pour la commande git qui, entre autres choses, permet de disposer GITHUB_USER et GITHUB_TOKEN variables d'environnement. Qui va remplacer les paramètres du local .gitconfig le fichier.

Ensuite, afin de la rendre transparente l'utilisateur vous l'avez souligné alias alias git=hub dans son ZSH config. Vous devriez être en mesure, ensuite, de la source d'un fichier local où vous pouvez définir vos variables d'environnement et pousser votre référentiel de l'opinion publique du monde avec l'ensemble de vos informations privées dans le tact.

**NOTE pour les homebrew utilisateurs sur OSX, vous pouvez l'installer via l'outil brew install hub.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X