Aunque este es mi segundo post sobre “git” voy a comenzar con una pequeña introducción sobre lo que es Git:

Git (pronunciado “guit”2 ) es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.

A continuación pongo los comandos mas comunes que suelo usar en mi día a día en Git:

Inicialización

git config --global user.name "[Antonio Martin]"      // Mi nombre
git config --global user.email "[antonio@XXXXXX]"     // Mi mail
git config --global color.ui auto
git config --global core.editor vi                    // Mi editor por defecto será vi
git config --global push.default simple               // Configuramos que por defecto el push sea simple

Comandos más básicos para ejecutar en local:

git status               // Muestra todos los los fichero en el directorio actual.
git add [file | *]       // Añade el fichero o todos los ficheros para el siguiente commit.
git reset [file | *]     // Quita un fichero de los seleccionados para añadir en el siguiente commit.
git diff                 // Muestra aquello que se ha cambiado pero no se ha subido.
git commit -m "Message"  // Comitea los cambios para el siguiente "pusheo" de información.
git checkout [file]      // Revierte los cambios de un fichero que se ha modificado pero no subido al servidor.
git rm [file]            // Elimina un fichero de una rama.
git mv [viejo] [nuevo]   // Mueve un fichero de un un path a otro.

Trabajar con Ramas:

git branch                  // Lista las ramas que se tienen, la que se muestra con  * es la actual.
git branch [nombre-rama]    // Crea una rama nueva.
git checkout [nombre-rama]  // Cambia tu rama actual a otra.
git merge [rama]            // Realiza el mergeo de una rama en la rama actual.

Comandos para inspeccionar y comparar

git log                     // Muestra todos los commits en de la rama actual.
git log branchB..branchA    // Muestra los commits en la rama A que no están en la Rama B.
git log --follow [file]     // Muestra el log de un fichero, incluso los renombres.
git diff branchB..branchA   // Muestra la diferencia de lo que esta en la Rama A que no está en la Rama B.

Ignorar ficheros

git ignore [file]                            //Ignora un ficher o
git config --global core.excludesfile [file] //Ignora ficheros del sistema

Trabajar con ramas Remotas

git fetch                    // Actualiza la información sobre las ramas remotas
git branch -r                // Lista todas las ramas remotas
git pull                     // Actualiza todos los cambios que se han realizado en una rama.
git checkout [branch]        // Cambia a una rama remota
git remote prune origin      // Actualiza las ramas en local
git push                     // Envía los cambios al servidor

Para re-escribir ramas, actualizar commits o limpiar la historia.

git rebase [branch]           // Aplica cualquier commit de la rama actual por encima de la rama especificada
git reset --hard [commit]     // Elimina todos los cambios de una rama y se va a un commit indicado
git merge --squash [branch]   // Realizando esto sobre una nueva rama de master se agrupan todos los commits
                              // en uno solo con lo que al realizar una PR solo se mostrará un commit.

Stash o almacenamiento temporal en local

Muchas veces nos encontramos en medio de un desarrollo y necesitamos almacenar temporalmente alguna información, para esto tenemos el comando stash. Stash se encarga de almacenar los productos como si de una pila se tratará, por ello sólo podremos procesar el último introducido.

git stash         // Salva los cambios que no hayamos comiteado.
git stash list   // Lista todos los cambiamos que hayamos stashado
git stash pop // Sacamos el último introducido.
git stash drop // Descartamos el último introducido.
Last modified: 08/08/2020