Git, git add, git commit -m, git what?!
¿¿Git what?? ¿Qué es eso y por qué es importante? ¿Se come?
Pues empecemos por lo básico, Git un sistema de control de versiones que registra los cambios realizados sobre un archivo durante su desarrollo.
Por ejemplo, si en algún momento del proyecto queremos volver a una versión anterior podríamos anticiparnos y no correr el riesgo de perder algún archivo que estará dentro de nuestro proyecto. Te puedo asegurar que poder regresar a una versión anterior en mi código me ha salvado la vida más de una vez.
Supongamos que te la pasas trabajando toda la noche en un proyecto súper duper especial y cuando estás a punto de terminar se apaga la computadora (para tu buena suerte) y misteriosamente todo se borró y ahora no sabes que hacer…
Estoy segura que a más de uno nos ha pasado esto en algún momento de nuestra vida y ese es el momento en que te das cuenta que tener tu proyecto en algún repositorio (Github,Gitlab,Bitbucket) pudo haberte evitado muchos dolores de cabeza.
Empecemos…
Antes de poder hacer cualquier cosa debemos primero configurar Git en nuestro computador, así que si usas Windows puedes instalar git Git bash, si tienes Linux como yo, puedes instalar git en la terminar con DNF o APT-GET dependiendo de tu versión.
Ya lo instalé y ¿ahora?
En tu terminal o Git Bash necesitamos configurar quienes somos para lo cual ejecutamos los siguientes comandos:
Ahora creemos nuestro repositorio en Github
Tenemos que ir a github (crear nuestra cuenta si es que no tenemos) y luego buscar la opción de crear un nuevo repositorio. Aparecerá una pantalla similar a esta:
Una vez creado tenemos dos opciones, podemos clonar nuestro repositorio creado desde Github (este nos bajará todo el código) o vincular una carpeta con código existente con nuestro repo.
Clonando…
Usar el URL que nos da git para clonar nuestro repo:
Vinculando
La segunda opción es subir una carpeta que ya estemos usando a un repositorio (mas común de lo que parece)
Aquí se pone un poco confusa la situación para nosotros, entonces primero, me dirijo a la carpeta donde estoy haciendo mi proyecto, una vez dentro:
Hago los siguientes comandos:
- git init
- git remote add origin https://github.com/arabelarc/Mi-primer-repositorio.git
- git commit -m “Mi primer commit”
- git push -u origin master
Todo muy bonito… ¿pero si tengo más cambios?
¿Qué pasa si quiero seguir subiendo cambio a mi proyecto?, pues hagamos el próximo ejercicio:
- Creemos un file HTML (principal.html)
- Creemos un CSS (main.css)
- Veamos como subirlo a nuestro a nuestro repositorio.
Aquí podemos ver que he creado los dos archivos y que si hago git status me sale como rojo lo que quiere decir que aún no están bajo el control de git.
Lo siguiente por hacer es repetir esos comandos que hice al principio (en realidad sólo los dos últimos)
- git add .
- git commit -m “Agregando otro HTML y CSS a mi proyecto”
Nota mental
Hablar más de la terminal..pero por mientras estos comando te pueden ser útil para navegar entre los directorios
- “ls” nos permite ver el contenido de nuestra carpeta, aquí estoy mostrando los archivos agregados para subirlos al repositorio.
- “cd” nos permite entrar a la carpeta
- “cd ..” nos permite salir de la carpeta
Si todo te salió bien deberías ver algo como esto
“git push origin master” (master es la rama principal por ahora)
Para agregar o modificar más archivos pues sólo tengo que seguir los mismos pasos que antes
- git add .
- git commit -m “Más cambios”
Estoy tan emocionada que quiero que mi amiga me ayude
Nuestro proyecto va creciendo y queremos pedirle a una amiga que nos ayude…¿Y ahora cómo hacemos?
Pues Michelle aceptó ayudarme así que la voy a agregar como colaboradora de mi repositorio en la sección de settings / collaborators
Le pedi a Michelle que clonara mi repositorio y agrega cosas a él, y esto es lo que Michelle hizo:
En esta primera pantalla vemos que ella clonó el repo.
En esta segunda ella agregó cosas al repo, entonces ¿que tendría que hacer yo para tener la versión con lo cambios que Michelle hizo? usamos “git pull origin master”.
Pero yo también he sido proactiva y avance con código
Como quiero ganarle a Michelle en la nueva funcionalidad que estamos haciendo intentaré subir mis cambios antes de bajarme los de Michelle, para eso sigo los pasos que antes ya habiamos visto:
- git add .
- git commit -m “mensaje”
- git push origin master
Pero para mi sorpresa git me retorno este mensaje:
Caramba…esta vez Michelle me ganó y no me queda otra que actualizar mi repositorio local antes de hacer push.
Pulea baby pulea
Entonces usamos “git pull” para descargar los archivos siguientes y agregarlos a nuestro repositorio local.
- git pull origin master
Hey si te atoras!, llama al 555-AYUDAME! y una TA irá al rescate.
Entonces tenemos ya en nuestro repositorio, los archivos de Michelle, una vez agregados, podemos subir nuestros archivos nuevos!
Ahora si repetimos los comandos anteriores para subir nuestro código y si todo salió bien podemos ver reflejado en github nuestros cambios.
Ya me aburrí de la terminal que tal si los vemos en github
Si me voy al commit 55bd315, podremos ver a detalle lo que se agregó, que tipo de archivo es y su contenido, inclusive puedo comentar línea por línea los cambios que otros hicieron
Si damos en view podremos ver el contenido del html.
Listo, ahora ya sabes Git y baila la danza del pusheo y el puleo…