Tutorial de Git

 En este articulo veremos el uso de comandos git


Git

Es un software para el control de versiones, eficiente. El cual usa por ejemplo una terminal para poder ejecutar comandos. 


Comandos de movimiento de un repositorio

Add: Este comando agrega y prepara la actualización del repositorio.

 
git add . // 1
git add ejemplo.jsx // 2
git add *.js // 3
git add src/hooks-* // 4
git add -u // 5
 

El primero es para agregar TODOS los cambios hechos. 

El segundo agrega un script en especifico. 

El tercero agrega todos los scripts con extensión js. 

El cuarto agrega los cambios en determinada posición.

El quinto agrega solo los cambios de archivos modificados o eliminados, pero no los nuevos.


Reset: este devuelve lo que agregamos para enviar al repositorio, para no enviarlo.


git reset
 


Commit: este coloca un id para lo que se va a agregar, con un comentario nuestro.


git commit -m 'Titulo | Se actualizo el componente ejemplo'
 

Algo recomendable es que los commits, deben ser cortos enfocados en que se hizo y porque.


Log: este comando nos ayudara a visualizar todos los commits hechos. Nos mostrara el SHA (id), el autor, la fecha, y el mensaje.


git log // Info completa
git log --oneline // Info resumida
git log -n 5 // Muestra los ultimos <5> commits
git log --oneline -n 5 // Mezcla de las dos anteriores
 


Push: este comando enviara todo lo preparado al repositorio (si no hay ningún error).


git push
 


Pull: este por el contrario, actualizara tu copia del repositorio.


git pull
 


Clone: sirve para copiar un repositorio, propio o no.


git clone 'https://github.com/Usuario/RepoEjemplo'
 


Comandos de ramas

Las ramas son para tener versiones diferentes de un mismo proyecto, las ramas se crean, se mezclan y se eliminan. Siempre un proyecto tiene una rama 'main' que es la principal.

Ademas usar ramas es bueno para la organización, manejar cambios drásticos o experimentar por fuera.


Switch: con este comando podremos crear una nueva rama. Y también para movilizarnos entre ellas.


git switch -c NuevaRama // > Debe ser descriptivo <
git switch main
 

El primer comando es para crear. Y el segundo es para cambiar de rama.


Branch: nos ayuda a visualizar todas las ramas existentes. Y también podemos borrar ramas.


git branch // Ver ramas
git branch -D NuevaRama // Borrar rama
 

El primero es para observar todas las ramas existentes. La segunda es para borrar, pero antes de borrar una rama, tendremos que desplazarnos a otra.


Merge: el comando nos funciona para mezclar ramas, pero para ello debemos ir a la rama raíz y hacer la mezcla con la rama requerida.


git merge NuevaRama
 


Otros comandos útiles

Status: muestra mucha información sobre el estado de nuestro repositorio.


git status // Info completa
git status -s // Info mas corta
 


Diff: muestra los cambios de un archivo según el repositorio, los compara y los muestra.


git diff
 


Stash: hay una área donde podremos guardar cambios que no se verán reflejados en el repositorio, pero si estarán guardados, para ello hacemos:


git stash 
 

Con la ejecución del comando anterior, todo lo que no hemos guardado agregado al repositorio se guardara en el stash. Y entonces podemos ejecutar:


git stash list
 

Este comando nos mostrara todo lo guardado anteriormente. Y entonces:


git stash pop
 

Lo anterior, hará que todo lo guardado regrese a la zona de trabajo.

Pero también podremos hacer cosas mas especificas:


git stash save "StashEjemplo" // Para guardar con un nombre
git stash pop stash@{1} /* Devuelve los cambios de ese en 
especifico de la lista */
 


Show: Mostrara información y/o metadatos sobre un elemento en especifico, como: un commit, un archivo de un commit, una rama, etc.


git show <IdCommit> // _Info sobre un commit
git show <IdCommit> --archivoEjemplo.py // Info sobre el archivo
git show RamaEjemplo // Info sobre la rama
 


Archivo .gitignore

Muchas veces en nuestro trabajo, habrán archivos que no son necesarios guardar en el repositorio, para ello creamos en la raíz del proyecto un .gitignore; ejemplo:


src/hola.py // Ignorar ese archivo en especifico
*.js // Ignorar todos los archivos con esa extensión
node_modules/ // Ignorar esa carpeta

!src/styles/ejemplo.css // NO ignorar ese archivo