2009-09-29 3 views
9

git ne semble pas faire ce que je veux ici, donc j'ai besoin de conseils. J'ai un fichier de configuration avec des informations sensibles telles que les mots de passe. Dire que j'ai vérifié dans le fichier de configuration avec des valeurs vides/génériques:Empêcher accidentel checkin du fichier de mot de passe en utilisant git

username = 
password = 

Maintenant, je le remplir avec des valeurs réelles, puis ajouter le fichier à .gitignore (le nom du fichier est build.properties)

username = bob 
password = secretpassword 

Même si je l'ai ajouté à .gitignore, git semble toujours le "voir". Que devrais-je faire ici?

hostname$ more .gitignore 
build 
ant.build 
*.swp 
build.properties 

hostname$ git status 
# On branch dev 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: build.properties 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

Ai-je mal compris quelque chose?

+0

Donc, juste pour clarifier, il semble que si quelqu'un fait 'git -a -m 'quel que soit' il va automatiquement vérifier les mots de passe encore oui? – corydoras

+0

oui, s'il est sous le contrôle de version, il sera inclus dans le commit – knittl

Répondre

21

.gitignore.gitignore ignore les fichiers qui n'ont pas encore été archivés. Dans votre cas, vous devez créer un fichier password.file.template et le vérifier. Ensuite, placez votre fichier password.file dans le fichier .gitignore.

4

Eh bien, il est dit modifié: build.properties, donc quelqu'un a déjà archivé ce fichier. Meilleure estimation de la mienne serait: supprimer le fichier, valider les modifications, puis le recréer sans check-in.

+0

Oui, comme je l'ai dit dans la question, j'ai vérifié une version générique du fichier de configuration comme modèle, donc il est clair que l'utilisateur doit entrer le fichier de construction. – corydoras

+2

OK, lorsque vous voulez distribuer le modèle, vous ne pouvez pas l'ajouter au fichier .gitignore (puisque git ne le récupérera pas de cette façon). Alors pourquoi ne pas créer un fichier build.properties.template et le vérifier? Vous pouvez ensuite demander à d'autres développeurs de supprimer la partie .template de ce fichier et de renseigner leurs informations d'identification. – seb

+1

Voici comment je le fais avec SVN. Créer un fichier de modèle comme ie. config.sample.txt, puis placez le fichier de configuration actuel en tant que fichier ignoré afin qu'il ne puisse pas être activé accidentellement. –

Questions connexes