2010-01-04 10 views
7

Est-il possible d'ignorer des fichiers spécifiques dans git seulement pour certaines télécommandes? par exemple, je stocke les informations d'identification AWS S3 (s3.yml) dans un fichier pour une application hébergée sur Heroku, donc je dois vérifier s3.yml dans mon dépôt pour que le déploiement fonctionne. Cependant, j'aimerais aussi publier la source sur GitHub, donc je serais sage de garder s3.yml hors du repo. J'imagine que cela fonctionne quelque chose commegit-ignorer les fichiers basés sur la télécommande?

#.gitignore 
github:config/s3.yml 

mais que vous n'avez rien trouvé dans les documents git. Est-ce possible? Ou dois-je maintenir deux repos distincts?

Merci!

Répondre

3

Ce fichier restera toujours dans le rapport si vous le publiez tel quel. Même si vous avez créé une branche et git-rm'd le fichier, les gens seraient toujours en mesure de vérifier la version qui avait encore le fichier. Je ne vois aucun moyen d'utiliser un seul référentiel tout en gardant un seul fichier inaccessible sur une télécommande.

Le problème principal est que, en tant que SCM distribué, chaque référentiel possède un historique complet des révisions. Étant donné que les listes de modifications sont cryptographiquement signées en fonction de leur contenu, il n'est pas possible d'effacer un fichier sans modifier le hachage de chaque liste des modifications depuis le moment où le fichier a été ajouté. C'est quelque chose que git peut faire, mais à ce stade, vous avez deux dépôts séparés qui ne pourront pas pousser/tirer directement/facilement.

+0

Je m'y attendais un peu. J'espérais juste que les git guys l'avaient fait pour nous - ils sont sacrément intelligents, après tout: D – trydionel

3

Heroku a config-vars pour ce genre de chose. Leur opinion semble être que l'information s3 ne devrait pas être vérifiée dans Git. Consultez this link pour plus d'informations sur la façon dont ils attendent ce genre de chose.

+0

Great link - Je n'avais pas vu ça auparavant. Il prend certainement soin de l'exemple de cas! – trydionel

Questions connexes