Intenté crear un nuevo proyecto phonegap 3.0 ... Nota: Soy nuevo en phonegap. De todos modos, veo que la carpeta del proyecto contiene:
.cordova
merges
platforms
plugins
www
Y después de haberlo intentado phonegap local run android
, veo muchos archivos binarios / generados en formato platforms/android
. Esto me deja preguntándome qué partes de esta estructura de carpetas debo agregar a mi repositorio de git. Normalmente, consideraría una práctica extremadamente deficiente confirmar archivos binarios. Por lo tanto, normalmente agregaría patrones comobin/
, obj/
, *.o
, *.pyc
etc, para .gitignore
evitar contaminar mi repositorio git con cosas que sólo sirve para crear conflictos de fusión.
Seguramente, www
debería agregarse a git, pero ¿qué pasa con las otras partes del proyecto? ¿En qué medida son productos del código fuente y en qué medida son la configuración del proyecto?
¿Qué haces? De acuerdo, soy nuevo, así que apenas entiendo lo que tiene sentido aquí ...
Respuestas:
La respuesta depende de en qué plataformas esté desarrollando la aplicación phongap y si está siguiendo la estructura de directorios estándar.
Si la estructura del directorio de su proyecto es estándar, entonces puede comenzar desde este gitignore y modificarlo según sus necesidades.
Como regla general, debe excluir todos los archivos generados como los directorios
bin/
ygen/
. Si está desarrollando una versión para Android de su aplicación, también debería excluir los archivos de compilación como*.apk
.Todos los archivos generados en el
android
subdirectorio también deben excluirse:fuente
Ampliando la respuesta de @Jake Moshenko:
Me gusta la idea de omitir el
platforms
directorio. De hecho, puedo excluir los directoriosplugins
yplatforms
. Un buen punto de partida para.gitignore
:El problema con esto es que se debe inicializar una copia limpia del repositorio antes de poder trabajar con él. Puede tener sentido crear un script de inicio como:
Una advertencia a este enfoque es que hace que sea un poco más desafiante personalizar el código / configuración de la aplicación específica de la plataforma fuera de lo que admite phonegap / cordova (es decir, soporte de orientación de pantalla).
Actualización: Bash Gist
Esta esencia contiene un script más completo para manejar un proyecto que no compromete los directorios
plugins
yplatforms
. Proporciona un mecanismo para copiar los íconos y las imágenes de la pantalla de presentación de www a los directorios de la plataforma (para iOS y Android), instalar complementos y manejar archivos específicos de la plataforma que deben agregarse al control de versiones.Actualización: Grunt Gist
Aquí hay otra esencia que es una adaptación de Grunt del script bash mencionado anteriormente. (Gracias a @obie por sugerir gruñido).
fuente
platform-merges
directorio. Por ejemplo, podría comprometerseplatform-merges/android/AndroidManifest.xml
. Este enfoque funciona bien para proyectos simples, pero podría complicar las cosas en proyectos más grandes.rm -rf platforms plugins
.Así que descubrí esto a través de prueba y error. El
platforms
directorio se puede omitir si está utilizando la compilación local o remota de phonegap, ya que se genera sobre la marcha. Todas las demás carpetas, incluida la carpeta oculta,.cordova
son necesarias.fuente
.cordova
carpeta, ¿por qué dice que es necesario @Jake Moshenko?Solo quería dejar aquí mi experiencia con este tema y el enfoque que finalmente seguimos.
En nuestro proyecto phonegap comenzamos a enviar todos los archivos menos la carpeta / plataforma usando el archivo .gitignore. Pensamos de esta manera, cuando el desarrollador clonó el repositorio, la única acción que quedaba por hacer sería ejecutar:
phonegap / cordova agregar plataforma
Pero no fue así. Una vez que se agregó la plataforma e intentamos compilar, apareció un error y la aplicación no se instaló en el dispositivo.
Mirando los registros, obtuvimos algunos resultados de que este error se debía a los complementos. Entonces decidimos reinstalar todos los complementos que estábamos usando en el proyecto y voilá la aplicación se ejecutará correctamente.
Entonces, mi consejo es guardar en el repositorio todo el contenido menos la plataforma de carpetas y los complementos. Cree y cargue en el repositorio un archivo README con una lista de complementos utilizados en el proyecto.
De esta forma, cuando un desarrollador clone el repositorio, deberá:
1.- Agregar las plataformas: phonegap / cordova agregar plataforma "plataforma"
2.- Agrega los complementos: phonegap / cordova plugin add "plugin"
¡Espero que esto ayude!
Saludos.
fuente
Muchas de estas cosas son antiguas y realmente no se aplican a la última versión de Apache Cordova. Estoy usando Apache Cordova 5.1.1 y este .gitignore me permite personalizar con íconos personalizados, etc., mientras bloqueamos todas las cosas que no necesitamos para la versión tanto para Android como para IOS. Sí .gradle se usa, ¡así que no lo elimines!
fuente
www/
carpeta ahí? En mi aplicación, eso era realmente la mayoría de las cosas útiles de la vida de las aplicaciones web.www/
porque los contenidos generados por scripts de compilación personalizados. Realmente no desea archivos de origen allí.Si bien es una preferencia algo personal, elegí esto (para un proyecto solo para Android). Eliminando la mayoría, pero manteniendo lo personalizado
fuente