2017-02-27 1 views
1

J'ai fait des back-flips pour éviter de valider des jetons API dans mes dépôts git. Souvent, j'ai échoué. Malgré mes meilleurs efforts, je ne trouve aucun outil ou commande intégrée pour empêcher la validation accidentelle de mes jetons, provoquant des seconds commits et des rafraîchissements de jetons plutôt embarrassants.Comment éviter de commettre des jetons dans GIT

Je me demande si quelqu'un a trouvé une bonne solution à mon problème?

Je crée principalement un fichier config.yaml ou config.json dans lequel je mets les paramètres de base. Je valide ce schéma initial et j'essaie de ne plus jamais le commettre avec des fusions maladroites. En testant ou en écrivant mon code dans une autre branche, je remplis les espaces réservés avec des jetons réels. Malheureusement, je les engage accidentellement parfois.

Existe-t-il une copie maîtresse dans git pour un fichier qui nécessite un git spécial et qu'un git commit -am . . . normal ne déclencherait pas?

+0

Notez que l'ajout d'une autre validation où les jetons sont supprimés n'empêche personne de les regarder dans des validations antérieures. – mkrieger1

+0

Merci, je suis conscient de cela et je rafraîchis mes jetons pour en générer un nouveau quand je réalise que je les ai accidentellement commis: *** "incitant des seconds commits plutôt embarrassants et des rafraîchissements symboliques." *** – Aaron

+0

Possible duplicate de [Comment puis-je marquer un fichier validé comme étant en lecture seule dans Git?] (http://stackoverflow.com/questions/27553551/how-can-i-mark-a-committed-file-as-read-only- in-git) – flyx

Répondre

1

Il y a deux solutions possibles à ce problème:

Option A vide les secrets de votre config.yml alors:

git add config.yml 
git commit -m "Added config.yml" 

Ouvrez votre fichier .gitignore dans votre éditeur de texte favori et ajouter ligne

config.yml 

Vous pouvez maintenant mettre votre secrets en toute sécurité dans le fichier, et ne pas être préoccupé par les engager accidentellement à git. L'inconvénient de ceci est que vous devez exécuter cette procédure chaque fois que vous voulez mettre à jour le fichier distant.

Option 2 Cette option implique le maintien d'une seconde config.yml.example. Comme avant ajouter config.yml à votre .gitignore. Gardez le 'template' pour la config comme vous le feriez pour n'importe quel autre fichier dans git.