Programación de Apps iOS para iPhone con Swift y SwiftUI - LaFactoríaApple

Cómo funciona GitHub

En La Factoría Apple somos de la opinión que la mejor manera de aprender es practicando, por aquello de que "la práctica hace al maestro". Por esta razón aprenderemos el funcionamiento básico de GitHub de manera práctica.

Una vez que entendamos los conceptos y el funcionamiento de esta herramienta, veremos como Xcode es capaz de integrarse con GitHub.

Cuál es el Modus Operandi cuando trabajas con un Sistema de Control de Versiones

Cada vez que iniciamos un  Proyecto crearemos un repositorio para almacenar los ficheros de nuestro Código Fuente, así como el resto de recursos de nuestra App. En el transcurso de nuestro trabajo de Desarrollo de Apps para iPhone, normalmente cuando hemos implementado una nueva funcionalidad, corregido algún error, etc., en esencia cuando hemos realizado un cambio importante en nuestra aplicación, o bien cuando lo consideramos oportuno, guardamos en el repositorio el estado actual del Proyecto. De esta forma, si detectamos algún error podremos volver a alguno de esos estados anteriores que hemos guardado y realizar las correcciones oportunas. Podemos volver a ver el aspecto que tenía un determinado fichero en cualquiera de los puntos del desarrollo que hemos ido guardando.

Guía oficial de GitHub para aprender su funcionamiento

GitHub nos ofrece una sencilla Guía para aprender el funcionamiento de esta herramienta de Control de Versiones.

https://guides.github.com/activities/hello-world/

A lo largo de nuestro aprendizaje de la herramienta GitHub iremos familiarizándonos con los siguientes términos:

Repositorio
Rama (branch)
Commit
Push
Pull
etc.

1.- Creamos nuestra cuenta en Github

Debes recordar el proceso de creación de una cuenta de GitHub.

2.- Crearemos un Repositorio

Un Repositorio es el lugar físico donde organizaremos los ficheros que componen un Proyecto, y además del histórico de cambios que hemos ido realizando.

Es aconsejable incluir un fichero README donde describamos nuestro Proyecto o hagamos anotaciones sobre el mismo.

Pulsamos el botón "Start a project" o "Create repository"

Nos aparecerá la siguiente pantalla

Damos Nombre al Repositorio e indicamos una Descripción. No te olvides de marcar la opción "Initialize this repository with a README".

Nuestro repositorio podrá ser Público (cualquiera puede verlo, pero nosotros elegimos quién puede hacer un Commit) o Privado (nosotros elegimos quien puede verlo y hacer Commit). Para este primer ejemplo elegiremos la opción Público.

Dejaremos para un contenido más avanzado las opciones Add .gitignore y Add a license

Para finalizar pulsamos el botón "Create repository"

Tras lo cual llegaremos a la pantalla de trabajo de GitHub

3.- Crear una Rama (branch)

Coloquialmente diremos que hacemos un branching (crear una rama) cuando trabajamos con diferentes versiones del repositorio simultáneamente.

Por defecto, al crear el Repositorio, este tiene una sola Rama, que recibe el nombre de “master”. Esta se define como la rama definitiva (versión estable o definitiva).

Cuando implementamos nuevas funcionalidades o hagamos cambios en nuestra aplicación, crearemos una nueva Rama. En ese momento se genera una imagen de la Rama master, sobre la que trabajaremos y cuando consideremos que los cambios o nuevas funcionalidades son correctos, haremos el proceso de “merge pull request” a la Rama master (lo veremos al final de este contenido).

Si mientras trabajamos en la nueva Rama, se producen cambios en el master podremos hacer el proceso Pull para incorporar esos cambios desde el master a la rama en la que estamos trabajando ahora.

Veamos como se crea una nueva Rama

Desplegamos el ítem “Branch: master

Escribimos el nombre que queremos darle a la nueva rama y pulsamos “Create branch

En este punto podemos comprobar que nuestro Repositorio ya tiene dos ramas, la master y la que acabamos de crear "mi primera rama"

En este desplegable podemos cambiar de una Rama a otra

4.- Hacer Commit de los cambios

Commit es el proceso de guardar los cambios realizados en un determinado punto de nuestro desarrollo. En esencia es como realizar una fotografía del estado actual de nuestro Proyecto.

Cada vez que hacemos un Commit escribiremos un mensaje describiendo los cambios efectuados.

En la Rama que hemos creado “mi-primera-rama” sólo tenemos el fichero README.md

Podemos editarlo haciendo clic sobre el icono del lápiz que hay en la esquina superior derecha.

Nos aparece un editor con el que podemos hacer cambios en el fichero.

En la parte inferior tenemos un formulario para hacer los comentarios sobre las cambios efectuados, además de indicar la Rama donde se guardarán

Pulsamos el botón "Commit changes"

Este cambio se ha producido en el fichero README.md en la Rama que hemos creado "mi-primera-rama". De forma que en este momento la Rama master y la Rama "mi-primera-rama" son diferentes.

5.- Solicitar un Pull

Después de hacer un Commit (guardar los cambios realizados) podemos hacer una solicitud de Pull “pull request” para que posteriormente (si lo vemos conveniente) hagamos la fusión de estos cambios con la Rama master (merge pull request).

Pulsamos en la pestaña superior "Pull requests"

Nos aparece la siguiente pantalla

Pulsamos el botón "New pull request"

Nos aparece la siguiente pantalla

Hacemos clic sobre la rama que hemos creado y que pretendemos comparar

Nos aparecerán los cambios en los ficheros. En verde lo que hemos añadido y en rojo dónde hemos eliminado algo.

Si estamos de acuerdo con los cambios, pulsamos el botón "Create pull request"

Tendremos que escribir un comentario informando sobre este Pull

Pulsamos el botón "Create pull request"

6.- Hacer un Merge del Pull Request

Ya podemos incorporar en la Rama “master” los cambios que hemos realizado en la Rama "mi-primera-rama", para ello haremos un Merge del Pull Request que hemos informado en el punto anterior

Pulsamos “Merge pull request

Después pulsamos “Confirm merge

Obtenemos el siguiente mensaje

Si ya no vamos a utilizar más la Rama "mi-primera-rama", podemos eliminarla pulsando el botón “Delete branch

Si vamos ahora al Branch “master”, vemos que el fichero README.md tiene ahora los cambios que hemos realizado en la Rama "mi-primera-rama"

Resumen

De manera práctica hemos visto el funcionamiento básico de GitHub:

- Tenemos una versión master del código.
- Creamos una Rama si necesitamos implementar una nueva funcionalidad o corregir algún error.
- Hacemos un Commit (guardamos los cambios).
- Verificamos que las modificaciones son correctas.
- Hacemos una propuesta de Pull.
- Aceptamos la propuesta del Pull (Merge Pull Request) para fusionar los cambios con la versión master.

El siguiente paso será trabajar con un proyecto en Xcode y vincularlo con GitHub.

Más en esta Sección