## Ejemplo Ilustrado de Uso de Git

- ¿Para qué Sirve esta Guía?
- Antes de Comenzar
- Crear un Proyecto en Gitlab
- Unirse a un Proyecto en Gitlab
- Subir Cambios al Proyecto
- Descargar Actualizaciones del Repositorio
- Llave SSH

### ¿Para qué sirve esta Guía?

Esta es una guía rápida, simple y gráfica del uso de la herramienta GIT para las tareas del ramo. Destinada a alumnos sin ninguna experiencia previa con el uso del programa.

Para un enfoque más técnico acerca del uso de esta herramienta, se recomienda leer el apartado de Ayuda GIT.

### Antes de Comenzar

► En caso de Windows: tener el programa GIT Bash instalado. Puedes descargarlo aquí.

► En caso de Linux: tener GIT instalado y utilizar la consola del sistema operativo en lugar de GIT Bash.

### Crear y Manipular un Proyecto en Gitlab

Lo primero por hacer es iniciar sesión en la plataforma. Una vez realizado esto, pulsar el botón verde New Project para crear un nuevo proyecto.

Ojo: solo un integrante debe crear el repositorio, a los demás integrantes se les dará acceso posteriormente.

Además, el proyecto debe ser privado.

Una vez creado el proyecto, para poder acceder al repositorio desde Git Bash es necesario que actualicen su configuración actual copiando lo que está en Git Global Setup.

Si no han usado Gitlab antes les aparecerá una advertencia en la parte superior de la pantalla que les sugiere agregar su clave SSH. Sin esta clave no podrán actualizar su repositorio.

Si no cuentan con una clave y no han recibido la advertencia, pueden ir a configuración del usuario y buscar SSH Keys.

Para ver el procedimieto de registro de la llave SSH pueden ir al apartado Llave SSH.

Continuando con el proyecto, si desea copiar los archivos del repositorio a nuestro computador, necesitamos una carpeta local que esté vacía y accedemos a ella en GIT Bash.

Para ello, se debe hacer uso del comando cd, escribiendo dicho comando y luego la dirección de la carpeta dentro de su sistema, siguiendo un esquema como el siguiente: cd direccion/de/la/carpeta. Ojo con la orientación del slash, Git Bash no reconoce los "\".

Ya ubicados en la carpeta con GitBash, seguimos las instrucciones de la página de inicio de nuestro proyecto para convertir dicha carpeta en un directorio de repositorio Git.

En breve lo que hace cada comando es:

Clonar el proyecto en el repositorio (carpeta) local.

$ git clone [direccion URL del proyecto]

Dirigir a la direccion de la carpeta del repositorio.

$ cd [nombre]

Crear un archivo md llamado readme.

$ git touch README.md

Agregar el archivo "README.md" al repositorio.

$ git add README.md

Generar un "commit", una especie de paquete con todos los archivos agregados por el comando add y con un mensaje instructivo que indica cuales fueron los cambios realizados en los archivos. En este caso se agrega el archivo README.md con el comentario "add README".

$ git commit -m "add README"

Subir el commit al repositorio.

$ git push -u origin master

Al subir el commit al repositorio, todos los archivos estarán disponibles para los demás integrantes del repositorio y los mensajes de los commits serán visibles en la página del proyecto, viendo así los cambios que realizó ese commit al proyecto y el comentario asociado al subirlo.

Para agregar miembros al proyecto ir a Settings -> Members en la parte izquierda de la pantalla.

Se deben de agregar los compañeros de grupo y la/el ayudante del paralelo.

Todos los roles deben ser Master

### Unirse a un Proyecto en Gitlab

El creador del proyecto debe haber generado una invitación para tí, con permisos como master o developer al proyecto. Por lo tanto podrás ver al inicio un enlace al proyecto del que eres parte y quien es el creador.

Para acceder a los archivos del repositorio, debes tener una carpeta vacía destinada a ser de repositorio. Utilizando GIT Bash ubicas la carpeta y luego inicias el programa administrador de git utilizando:

$ git init

OJO: Debes registrar tu clave SSH en caso de no haberlo hecho antes. Ver Aquí.

Para que la carpeta remota reconozca el repositorio del proyecto es necesario hacer:

$ git remote add origin [URL del proyecto]

Una vez hecho esto, utiliza el siguiente comando para actualizar tu repositorio local con en del proyecto:

$ git pull origin master

¡Ahora podrás ver los archivos del proyecto en tu repositorio local!.

### Subir Cambios al Proyecto

Al realizar cambios en el repositorio local (carpeta), puedes subir tus cambios para que el resto de los integrantes puedan acceder a ellos.

Para lograr eso, ejecutando GIT Bash, nos situamos en la dirección del repositorio local y luego iniciamos el programa administrador de git:

$ git init

Luego indicamos los archivos que deseamos subir al repositorio con la siguiente sentencia.

$ git add [nombre del archivo]

Por otro lado, si deseamos agregar todos los cambios realizados en la carpeta al commit, ejecutamos:

$ git add .

Luego creamos el commit:

$ git commit -m "[descripción del commit]"

Y finalmente lo subimos a la página:

$ git push -u origin master

OJO: Es recomendable siempre actualizar el repositorio antes de un hacer un git push.

### Descargar Actualizaciones del Repositorio

Para actualizar tu repositorio local en caso de que hayan habido cambios en el proyecto colocar:

$ git pull origin master

### Llave SSH

Esta llave es necesaria de registrar para todo los usuarios, sean creadores de proyectos o no.

Solo es necesario registrar la llave SSH una vez.

Lo primero que hay que hacer es copiar este comando en su GIT Bash.

$ ssh-keygen -t rsa -C "correo_institucional@[...].usm.cl"

Deberán de darle ENTER a todo, no es necesario poner nada.

Una vez hecho esto colocar el siguiente comando:

$ cat ~/.ssh/id_rsa.pub

Copiar la respuesta.

Ejemplo gráfico:

Pegar la respuesta en Settings->SSH Keys y agregar llave.

Si les sale el siguiente error al intentar clonar el repositorio y ya han registrado su llave:

Puede solucionarse el problema copiando en GIT Bash el siguiente comando:

$ git config --global http.sslVerify false

No es necesario volver a registrar una llave SSH para futuros proyectos en el mismo ordenador.