Cuando se tiene varios desarrolladores trabajando en un proyecto es conveniente usar un sistema de control de versiones (VCS). Hoy en día, muchos proyectos conocidos utilizan Git con Xcode.
En este artículo muestro los aspectos básicos que debes dominar para empezar a usar Git, el VCS más usado del mundo.
Algo de historia
Antes, cuando no existía ningún tipo de sistema de control de versiones se recurría a la creación de carpetas para ir guardando las diferentes versiones del proyecto. Pero cuando se necesitaba una versión más estable se tenía que revisar una a una las carpetas.
Luego con los sistemas de control de versiones de primera generación (SCCS, Sistema de control de código fuente y RCS, sistema de control de revisiones) se rastreaban los cambios en archivos individuales de ediciones locales y un usuario a la vez.
Después, con los de segunda generación (CVS, sistema de versiones concurrentes y SVN, Apache Subversion) se introdujo el soporte de red, que resultó en repositorios centralizados con versiones «oficiales» de proyectos. Este fue un avance significativo, ya que varios usuarios podían trabajar en el código al mismo tiempo.
Hoy en día los de tercera generación (Git y Mercurial) consisten en VCS distribuido, donde no hay un repositorio central.
Esto hace más fácil el camino para confirmaciones, bifurcaciones y fusiones que se crean localmente sin acceso a la red y se mueven a otros repositorios según sea necesario.
¿Qué es Git?
Git es un sistema de control de versiones distribuido, que sincroniza el trabajo con el sitio, además de guardar y actualizar los cambios en los archivos. Permite que todos los miembros que trabajan en un mismo proyecto estén al tanto de los cambios y, en caso de errores, volver a las versiones anteriores de los archivos.
Principales plataformas de Git
Me gusta usar Git para mis proyectos de Xcode, y luego los alojo en algún repositorio desde la red o desde una plataforma para que se pueda acceder a ellos externamente. De esta forma puedo compartir el avance de mi proyecto, agregar nuevos repositorios, eliminar los que ya no sirven, así como administrar distintas ramas y establecer los criterios de rastreo.
GitHub 
Es un servicio web para alojar proyectos colaborativos y una gran red social para desarrolladores. Es gratis para aquellos proyectos que son de código abierto.
Bitbucket 
Se puede crear un repositorio central o remoto con una extensión .git y luego enviarlo a Bitbucket. Este servicio es gratuito, pero también se pueden crear varios repositorios privados.
GitLab 
Puede usarse directamente en el sitio web oficial (gitlab.com), registrando una cuenta, o puede instalarse e implementarse en su servidor.
¿Qué es GitFlow?
Es un conjunto de metodologia para facilitar la ramificación. Facilita el lanzamiento, la corrección de errores y la creación de funciones.
Cómo implementarlo
El trabajo comienza en la rama de Develop(desarrollo). Si es necesario probar algo nuevo se crea una rama de función y se realizan confirmaciones, y al terminar se fusiona desde el desarrollo.
Si está satisfecho con la versión actual, pero quiere seguir trabajando, se crea una rama de release(liberación) y se mueve la versión actual. Los errores se solucionan en la misma rama.
Cuando finaliza la rama de lanzamiento, se fusiona en la rama master(maestra) y continúa trabajando con la rama desarrollo.
Ramas principales/apoyo
En total, hay 5 tipos de ramas en gitflow, cada una de las cuales lleva una determinada carga funcional.
Ramas Principales: Master y Develop
Existen durante todo el proceso de desarrollo.
La rama Master contiene los cambios más estables de la versión. Solo los cambios de las ramas de release y hotfix se fusionan en esta rama.
La rama Develop contiene el código estable de nuevas funciones y correcciones de errores. Las características triviales que se pueden desarrollar en una confirmación completa generalmente van directamente a esta rama.
Ramas de Apoyo: Feature, Release y Hotfix
Son ramas temporales.
La rama Feature se crea para cada característica no trivial. Se separa de develop y se fusiona nuevamente en él. Una vez finalizado el trabajo en la función y la fusión final en develop, la rama se elimina. El nombre de la rama debe coincidir con el nombre de la función que se está desarrollando, por ejemplo, «feature-gamecenter-integration».
La rama release se utiliza para preparar la nueva versión del proyecto. Contienen correcciones de errores y configuraciones previas al lanzamiento. Al finalizar el trabajo, se lleva a cabo la fusión final de la rama en master y develop, después se elimina la rama y la nueva tag(etiqueta) de versión se asigna a la confirmación de fusión en la rama master. El nombre de la rama debe coincidir con la versión de lanzamiento, por ejemplo, «lanzamiento-1.4».
Finalmente, se crean ramas de hotfix, que sirven para corregir problemas críticos encontrados en la versión de lanzamiento. Se aparta de la master y se vuelve a fusionar una vez completadas las correcciones de errores. Luego, la rama en sí se elimina y la nueva etiqueta de versión se asigna a la confirmación de fusión en la rama master. El nombre de la rama suele ser la nueva versión dada a la versión corregida, por ejemplo, “hotfix-1.4.1” (primera versión de revisión 1.4).
Por qué es bueno usar GitFlow
Es un modelo de ramificación excelente y bastante útil. Ideal para proyectos que se adhieren a un ciclo de lanzamiento específico. El enfoque reduce significativamente el número de errores e imperfecciones.
Cómo usar Git con Xcode
A continuación, te indico los pasos para usar Git
Crear proyecto: abrir Xcode y hacer clic en crear un nuevo proyecto.
Iniciar repositorio git: haz click en la opción Source Control > Create Git Repositories o con el comando git init desde el Terminal
Ver el control de cambio (Version Editor) que muestra el estado actual del proyecto y del repositorio local.
Hacer commit desde Xcode. La base del historial de versiones son los commits. Para ello tendrás que hacer click en la opción Source Control y después en Commit este comando abre un editor de texto para ingresar el mensaje del commit o puedes usar git commit
Crear branch (rama):
Para crear una nueva rama de Git desde el Xcode, debe asegurarse de ir al Source Control Navigator situado en la esquina superior izquierda.
Haz click con el botón derecho sobre master y selecciona la opción Branch from “master”, aparece un cuadro de diálogo que le permite nombrar la rama
Comando Pull
Copia los cambios de la instancia del repositorio remoto a la local. La operación de extracción se utiliza para sincronizar entre dos instancias de repositorio.
Comando Push
Copia los cambios de la instancia del repositorio local a la remota. Esto se usa para conservar los cambios en el repositorio de Git.
Comando Checkout
Al ramificar en Git es común usar el comando git checkout para cambiar de rama o verificar una rama existente. Tambien se puede hacer desde Source Control Navigator con solo seleccionar la rama en la de checkout
Aqui explico otros comandos más avanzados de Git.
Conectarnos a un repositorio remoto
Git no es solo una herramienta para el control de versiones, sino también una solución avanzada para el desarrollo colaborativo.
Cualquiera de nosotros que haya desarrollado código, o que pretenda hacerlo, puede crear un repositorio en GitHub, permitiendo así la gestión y el intercambio de su trabajo de forma remota.
La creación de un repositorio es gratuita y sencilla. Se divide en estos tres pasos diferentes:
Registrarse para obtener una cuenta en GitHub

Instalación y configuración de Git:
En el momento en que tengas cuenta en GitHub lo siguiente que tendrás que hacer será enlazarla desde Xcode.
Para ello, haz click en el menú Xcode > Preferences… y dentro del menú Accounts, pulsa en el botón situado en la esquina superior izquierda: +. Elige GitHub, introduce tu email y contraseña y pulsa en Sign In.
Crear el repositorio:
Ahora, vamos a crear el repositorio en GitHub para nuestro proyecto. Estando en el Source Control Navigator, haz click con el botón derecho sobre el nombre del proyecto y selecciona New “GitTest” Remote on GitHub…
En la siguiente ventana, escribe una descripción para el repositorio, selecciona la opción Public y pulsa en Create
De esta forma tan sencilla acabas de subir el repositorio del proyecto a tu cuenta de GitHub. Si vas a github verás que en tu cuenta tienes un nuevo repositorio con el código que hemos ido modificando aquí. Podrás ver la descripción del proyecto, los commits que has hecho y los ficheros que forman el proyecto.
¡Todo esto usando Git con Xcode!
Conclusión
He presentado de una forma sencilla cómo usar Git con Xcode. Si eres miembro de un equipo, entonces es obligatorio trabajar con un sistema de control de versiones.
Sin embargo, si estás trabajando solo, te recomiendo que comiences a usar el control de versiones con Xcode si aún no lo haces. Esa es una forma de garantizar que no arruinarás ningún trabajo ya hecho, y, además, será más fácil expandir tus aplicaciones al agregar nuevas funciones.
¿Qué te pareció los aspectos básico de Git con Xcode? Dejame tu comentario y no te olvides de compartirla 😄
Comentarios recientes