2010-01-04 17 views
7

¿Es posible ignorar archivos específicos en git solo para ciertos controles remotos?, por ejemplo, estoy almacenando credenciales de AWS S3 (s3.yml) en un archivo para una aplicación alojada en Heroku, por lo tanto, debo verificar s3.yml en mi repositorio para que la implementación funcione. Sin embargo, me gustaría publicar la fuente en GitHub también, así que sería prudente mantener s3.yml fuera del repositorio. Me imagino que funciona algo así comogit-ignorando archivos basados ​​en control remoto?

#.gitignore 
github:config/s3.yml 

pero no he podido encontrar nada en los documentos de Git. es posible? ¿O necesito mantener dos repos por separado?

Gracias!

Respuesta

3

Ese archivo siempre va a vivir en el repositorio si lo publica como está. Incluso si creara una bifurcación y procesara el archivo, la gente siempre podría verificar la versión que aún tenía el archivo. No veo ninguna forma de usar un único repositorio mientras se mantiene inaccesible un único archivo en un control remoto.

El problema central es que, como SCM distribuido, cada repositorio tiene un historial completo de revisiones. Dado que las listas de cambios se firman criptográficamente en función de su contenido, no es posible borrar un archivo sin cambiar el hash de cada lista de cambios desde el momento en que se agregó el archivo. Esto es algo que Git puede hacer, pero en ese punto tienes dos repositorios separados que no podrán empujar/tirar directamente/fácilmente.

+0

Esperaba algo así. Solo esperaba que los git hubiéramos trabajado para nosotros, son muy brillantes, después de todo: D – trydionel

3

Heroku tiene config-vars para este tipo de cosas. Su opinión parece ser que la información s3 no debería estar ingresando a Git. Consulte this link para obtener más información acerca de cómo esperan este tipo de cosas.

+0

Great link - No había visto eso antes. Ciertamente se ocupa del ejemplo de caso! – trydionel

Cuestiones relacionadas