2009-09-29 19 views
9

git no parece hacer lo que quiero aquí, así que necesito algunos consejos. Tengo un archivo de configuración con información confidencial como contraseñas. Decir que he comprobado en el archivo de configuración con los valores en blanco/genéricos:Evitar el registro accidental del archivo de contraseñas usando git

username = 
password = 

Ahora colmo con valores reales, y luego agregar el archivo a .gitignore (el nombre del archivo es build.properties)

username = bob 
password = secretpassword 

Aunque lo he agregado a .gitignore, git todavía parece "verlo". ¿Qué debería hacer aquí?

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") 

¿Estoy malentendido algo?

+0

Así que, solo para aclarar, parece que si alguien hace 'git -a -m 'whatever'' automáticamente comprobará las contraseñas ¿sigue si? – corydoras

+0

sí, si está bajo control de versión se incluirá en la confirmación – knittl

Respuesta

21

.gitignore solo ignorarán los archivos que no estén registrados. En su caso, necesita crear un password.file.template y verificarlo. Luego, ponga su archivo password.file en el archivo .gitignore.

4

Bien, dice modified: build.properties, alguien ha registrado ya este archivo. La mejor suposición sería: eliminar el archivo, confirmar los cambios y luego volver a crearlo sin check-in.

+0

Sí, como indiqué en la pregunta, he comprobado una versión genérica del archivo de configuración como plantilla, por lo que está claro lo que el usuario debe ingresar el archivo de compilación. – corydoras

+2

OK, cuando quiera distribuir la plantilla, no puede agregarla al archivo .gitignore de todos modos (ya que git no lo recogerá de esa manera). Entonces, ¿por qué no crear un archivo build.properties.template y verificarlo? A continuación, puede indicar a otros desarrolladores que eliminen la parte .template de ese archivo y completen sus credenciales – seb

+1

Así es como lo hago con SVN. Crea un archivo de plantilla como, por ejemplo. config.sample.txt, luego coloque el archivo de configuración real como un archivo ignorado para que no pueda ser cometido accidentalmente. –

Cuestiones relacionadas