Archivos separados en Git
Pregunta
Estoy tratando de mantener mis archivos estáticos en una rama separada para evitar que se fusionen en mi master brach (en Heroku, la babosa de su aplicación debe mantenerse pequeña). No quiero ignorar mis archivos estáticos, porque quiero mantenerlos dentro de mi '' desarrollo '' rama.
Idealmente, me gustaría mantener test.db en blanco y toda mi carpeta pública en blanco en la rama maestra.
Entonces, ¿puedo crear una 'superposición' en una rama? ¿Puedo evitar que ciertos archivos / directorios se fusionen en mi rama maestra?
Solución
Podría definir esos mismos archivos estáticos en su rama maestra pero:
- vacío
- con un archivo de atributos que especifica que siempre quiere mantener su versión local (es decir, vacía) al fusionar esos archivos
Dado que ese atributo .gitattribute no se definiría en otras ramas, la fusión de esos archivos continuaría normalmente.
La idea es definir un archivo .gitattributes en el directorio de esos archivos estáticos en la rama maestra con el siguiente contenido:
myStaticFile1 merge=keepMine
myStaticFile2 merge=keepMine
myStaticFile3 merge=keepMine
Esos tres archivos siempre mantendrán su contenido local (que está vacío en el maestro) cuando se fusionen con el maestro.
Tendrá que definir un controlador de fusión (aquí llamado " keepmine "). Vea la pregunta vinculada para ese script.
Otros consejos
Agregue los archivos a .gitignore en master. Cuando finaliza el proceso de pago, .gitignore cambiará y ya no los ignorará. (Tenga en cuenta que si ejecuta git clean -x
, los archivos se sobrescribirán).