En este tutorial veremos qué son y para que sirven tanto Git como GitHub. Personalmente pienso que tener claros estos conceptos es primordial en nuestro día ya sea laboral o cuando estamos estudiando.
1 - Qué es Git?
Git es un sistema de control de versiones. Desde una perspectiva de desarrollador es un sistema que almacena y controla los cambios sobre los ficheros que modificamos.
Además, git es un sistema de versiones distribuido, esto quiere decir que disponemos de un repositorio remoto en el servidor y un repositorio local el cual se almacena en la máquina de cada desarrollador. Lo que implica que el código esta tanto en el servidor como en cada máquina que lo modifica.
Es importante incluir toda esta información, ya que la gran mayoría de las empresas incluyen un sistema de control de versiones, comúnmente git, aunque hay más como subversión o csv.
1.1 - Para qué sirve Git?
En un entorno laboral real nos permite trabajar en paralelo con varios desarrolladores. Ya que gracias a git podemos comprobar todos los cambios del código, así como los conflictos.
Cuando realizamos un cambio decimos que hacemos un commit
, el cual contiene información, como el autor, la fecha, un comentario y los ficheros que han cambiado.
Esto es un ejemplo de varios commits que tengo en una librería:
1.2 - Descargar Git
Si tenemos instalado visual studio 2019 tendremos git instalado en el nuestra máquina por defecto, pero aun así podemos comprobar si esta instalado con el siguiente comando en la terminal (cmd)
git --version
nos indicara si tenemos git instalado, en caso contrario, lo podemos descargar desde la pagina oficial para la versión que necesitemos https://git-scm.com/downloads
2 - Qué es GitHub?
Es un servicio de compartir y publicar código. Básicamente es como si fuera una red social de programadores. La cual utiliza git
por detrás.
Comúnmente trabajaremos tanto con Git como con GitHub en paralelo. Personalmente creo que es la mejor combinación. Si por algún motivo no nos gusta la interfaz de GitHub siempre podemos utilizar otras como bitbucket.
2.1 - Crear una cuenta en GitHub
Para crear una cuenta de GitHub tan solo tenemos que acceder a su página web https://github.com/
Para así poder crear nuestro primer repositorio.
2.2 - Qué es un repositorio?
Dentro de GitHub tenemos el código dividido por secciones, por ejemplo, aplicación para subir imágenes, aplicación para escribir posts, etc. Cada una de estas aplicaciones está dentro de un repositorio, por supuesto un repositorio puede contener mas de una aplicación.
Los repositorios suelen estar divididos internamente por lógica de negocio
2.3 - Crear un repositorio
Para crear un repositorio únicamente tenemos que pulsar en el botón verde y ya empezaremos a trabajar con él.
Le indicamos un nombre y pulsamos en crear repositorio.
Además nos deja indicar varias cosas como por ejemplo
Si queremos el repo público o privado
Si queremos introducir un fichero README
, los ficheros readme se escriben, normalmente, en lenguaje markdown.
Indicar el fichero .gitignore
el cual evitara que publiquemos fichero que no deseamos que se publiquen, comúnmente ponemos dentro de este todos los ficheros temporales como los de la carpeta /bin
u /obj
.
2.4 - Utilizar Git en nuestro ordenador
Para ello tendremos que poner el repositorio en nuestro equipo.
Como hemos indicado antes, en GitHub disponemos de una copia en el servidor y otra en local. Para copiar el directorio. Para ello pulsamos en el botón que dice “clonar o descargar” y después pulsar en el icono para copiar.
Posteriormente abrimos visual stuido y pulsamos en clone o checkout code
Y pegamos la url en la localización como vemos la podemos cambiar o dejar la de por defecto.
Podemos utilizar el siguiente comando
git clone [email protected]:<tuCuentadeGithub>/ejemploGitHun.git
Bien ahora ya tenemos el repositorio enlazado en nuestro ordenador. Por lo que pasamos a crear un fichero o un proyecto, o lo que deseemos, también funciona con archivos de audio, imágenes, etc. Es un control de versiones para todo tipo de fichero.
3 - Realizar cambios
Cuando realizamos un cambio, ya sea modificar un fichero, añadir un fichero, borrar un fichero o moverlo, este cambio quedará reflejado en el controlador de versiones.
Por ello creamos un fichero de texto plano (podemos utilizar el README) y añadimos texto en el.
Como podremos imaginar esos cambios están pendientes de ser enviados al servidor, para ello tenemos que realizar dos pasos
3.1 - Realizar un commit
*Nota: en el video todos los pasos son realizados en el entorno gráfico de Visual Studio, aquí en el post, utilizaremos línea de comandos.
El primero de los pasos es realizar un commit
, el cual es un comando que indicara al servidor de versiones que esa versión del fichero es la versión actual.
Para ello utilizando línea de comandos o powershell vamos a la carpeta donde se encuentra el fichero y escribimos lo siguiente:
git commit -m “mensaje descripción”
como vemos el comando contiene git commit
y la opción -m
la cual permite escribir un comentario. Es recomendable, y debería ser obligatorio añadir un comentario cuando se hace un commit, así puedes ver de una forma mas rápida sobre que es el cambio.
3.2 - Realizar un push
Como hemos indicado, el cambio esta en el controlador de versiones, pero esta en el controlador de versiones de tú máquina, para que este se mueva al servidor tenemos que hacer un push con el siguiente comando.
git push
Con ello los cambios serán movidos al servidor. En caso de que otro desarrollador durante el tiempo que hemos estado trabajando en el fichero haya realizado algún cambio, al realizar el push nos indicará que hay un conflicto y tendremos que resolverlo. Pero lo veremos en el siguiente post.
3.3 - Incorporar cambios ajenos
Supongamos que nos hemos ido de vacaciones, y alguien se ha puesto en nuestro proyecto a arreglar problemas durante este tiempo. Eso quiere decir que en nuestra maquina tenemos una versión inferior a la versión real de la aplicación.
Lo que tenemos que conseguir ahora es actualizar la versión de nuestra máquina.
Para ello realizaremos los siguientes dos comandos:
git fech
git merge
los cuales actualizaran la versión de la aplicación con los últimos cambios.
Otra opción es realizar ambos en un solo comando
git pull
pero puede haber algún problema con conflictos, lo mas seguro es realizar tanto git fetch
como git merge
.