Sorprendentemente, esto NO tiene una respuesta sencilla. Hay dos escuelas de pensamiento con respecto a qué incluir en un repositorio git (o de cualquier otro sistema de control de versiones):
Todo aquello que sea necesario para compilar y desplegar el proyecto.
Sólo aquello que no pueda ser fácilmente regenerado a partir de otros elementos que sí están incluidos.
La opción 1 es la más paranoica e implica en guardar incluso aquellos ficheros binarios de terceros, para los cuales no tienes el código fuente (librerías, etc). Como desventaja, tu repositorio terminará siendo mastodóntico.
La opción 2 es la optimista: como los demás ficheros de cocoapods pueden volver a ser generados a partir del fichero Podfile, pues no los incluyes. De hecho, esto es lo que hace el ejemplo de Cocoapods.
Un servidor, como siempre ha tenido un alma optimista, ha tirado siempre por la opción 2…hasta que llegó el Apocalipsis Zombie. 🙁
¿Lo creías olvidado? ¡Pues ha vuelto! Return of the living dead
En una vida anterior, de oscuridad y llanto, vivia atado a la pata del compilador de C++ de Microsoft. Programando para Windows purgaba pecados y limpiaba mi Karma. Pues bien, un proyecto «legacy», que creía olvidado y enterrado, salió a la superficie cual Zombie hambriento de sesos, gritando ¡Compílame!
¡Ningún problema! Saco la última versión del repositorio, y ¡lo traigo de vuelta a la vida, cual moderna reencarnación del Dr Herbert West!
Dr Herbert West: Reanimator
El problema, es que no tenía el binario de un componente vital para la interfaz de usuario, así que me bajé la última versión, que por supuesto tenía un montón de nuevas dependencias que desconocía y no estaban documentadas. Tiempo total hasta poder recompilar: 3 días infernales. 🙁
Regla para saber qué incluir en tu repositorio git
Si trabajas para un cliente, guarda todo lo necesario para recompilar el proyecto, incluidos los ficheros binarios de terceros para los cuales no tienes la fuente. Yo incluiría todo lo que venga en Cocoapods.
Si de verdad eres paranoico y crees que tendrás que dar soporte a un proyecto dentro de un montón de años (a veces pasa), no estaría de más guardar una máquina virtual con todo listo. Una buena opción puede ser vagrant.
Si trabjas para tí, pues calvez lo mejor sea optar por la opción optimista: sólo los ficheros de código que no puedan ser fácilmente regenerados a partir de otros que ya están en el repositorio git. Esto implicaría, en el caso de Cocoapods, solo guardar el Podsfile (y encomendarse a Santa Tecla).
Mi fichero .gitignore
Como no aprendo, sigo optando por la opción 2, y para mi fichero .gitignore, uso el siguiente script, que se baja uno de github. Este .gitignore es creado por un grupo de desarrolladores iOS y puedo siempre obtener la última versión:
#!/bin/sh
# Sets a .gitignore for xcode
curl -s https://gist.github.com/adamgit/3786883/raw/2e79a2e99c7d8bdbb48aff537a3909ad2917fbf5/.gitignore > .gitignore
¿De cuánta utilidad te ha parecido este contenido?
¡Haz clic en una estrella para puntuarlo!
Promedio de puntuación 0 / 5. Recuento de votos: 0
Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.
Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.
Cookies estrictamente necesarias
Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.
Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.
Cookies de terceros
Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.
Dejar esta cookie activa nos permite mejorar nuestra web.
¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!