usar sintaxis para example crear como comando archivo git cordova cordova-3

para - gitignore sintaxis



.gitignore para proyectos PhoneGap/Cordova 3.0-¿qué debo comprometer? (6)

Intenté crear un nuevo proyecto de Phonegap 3.0 ... Nota: Soy nuevo en Phonegap. De todos modos, veo que la carpeta del proyecto contiene:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

Y habiendo probado con phonegap local run android , veo muchos archivos binarios / generados en platforms/android . Esto me deja pensando, ¿qué partes de esta estructura de carpetas debo agregar a mi repositorio de git? Normalmente, considero una práctica extremadamente pobre para comprometer archivos binarios. Por lo tanto, normalmente agregaría patrones como bin/ , obj/ , *.o , *.pyc etc. a .gitignore para evitar contaminar mi repositorio de git con cosas que solo sirven para crear conflictos de fusión.

Seguramente, www debe agregarse a git, pero ¿qué pasa con las otras partes del proyecto? ¿Hasta qué punto 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í ...


Así que acabo de descubrir esto a través de prueba y error. El directorio de platforms se puede omitir si está utilizando la generación local o remota de phonegap, ya que se genera sobre la marcha. Se requieren todas las otras carpetas, incluida la carpeta oculta .cordova .


Expandiendo la respuesta de @Jake Moshenko:

Me gusta la idea de omitir el directorio de platforms . De hecho, puedo excluir los directorios de plugins y platforms . Un buen punto de partida para .gitignore :

platforms/ plugins/

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:

#!/bin/bash textReset=$(tput sgr0) textGreen=$(tput setaf 2) message_info () { echo "${textGreen}[my-app]${textReset} $1" } message_info "Creating necessary directories..." mkdir plugins mkdir platforms message_info "Adding platforms..." # If using cordova, change to: cordova platform add android phonegap build android phonegap build ios message_info "Adding plugins..." # If using cordova, change to: cordova plugin add phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

Una advertencia a este enfoque es que hace que sea un poco más difícil 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 una secuencia de comandos más completa para manejar un proyecto que no compromete los plugins y directorios de platforms . Proporciona un mecanismo para copiar los iconos y las imágenes de pantalla alternativa desde www a los directorios de la plataforma (para iOS y Android), instalar complementos y manejar archivos específicos de la plataforma que se deben agregar al control de versiones.

Actualización: Grunt Gist

Aquí hay otra esencia que es un puerto Grunt del script bash mencionado anteriormente. (Gracias a @obie por sugerir gruñidos).


La respuesta depende de qué plataformas está desarrollando la aplicación phongap, y si está siguiendo la estructura de directorio estándar.

Si la estructura de su directorio de proyecto es estándar, puede comenzar desde este gitignore y modificarlo según sus necesidades.

En una regla práctica, debe excluir todos los archivos generados, como bin/ y gen/ directories. Si está desarrollando una versión de Android de su aplicación, debe excluir los archivos de compilación también como *.apk .

Todos los archivos generados en el subdirectorio de android deben ser excluidos también:

Android/bin/ Android/gen/ Android/assets/


Muchas de estas cosas son antiguas y no se aplican realmente a la última versión de Apache Cordova. Estoy usando Apache Cordova 5.1.1 y este .gitignore me permite seguir personalizando con iconos personalizados, etc. mientras bloquea todo lo que no necesitamos para la versión tanto para Android como para iOS. Sí. Se usa .gradle así que no lo elimine.

www/ .gradle/ build/ .tmp/ .temp/ coverage/ *.log node_modules/ bower_components/


Si bien es algo preferencia personal, fui con esto (para un proyecto solo con Android). Eliminando la mayoría, pero manteniendo lo que es personalizado

ToonPlane/platforms/android/* !ToonPlane/platforms/android/AndroidManifest.xml ToonPlane/plugins/* !ToonPlane/plugins/android.json !ToonPlane/plugins/fetch.json


Solo quería dejar aquí mi experiencia con este tema y el enfoque que finalmente seguimos.

En nuestro proyecto de phonegap comenzamos a enviar todos los archivos menos la carpeta / plataforma usando el archivo .gitignore. Pensamos de esta manera, cuando el desarrollador clonaba el repositorio, la única acción pendiente era 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, recibimos algunos aciertos de que este error se debió a los complementos. Así que decidimos volver a instalar todos los complementos que usábamos en el proyecto y hacer que la aplicación se ejecutara correctamente.

Así que 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 manera, cuando un desarrollador clona el repositorio, él / ella tendrá que:

1.- Agregue las plataformas: phonegap / cordova add platform "platform"

2.- Agregue los complementos: phonegap / cordova plugin add "plugin"

¡Espero que esto ayude!

Saludos.