Guia Git Básico
Table of Contents
1. Básico
1.1. Agregar todos los cambios nuevos
Si hicimos cambios en varios archivos y directorios, y no queremos agregar cambio por cambio podemos pasarle por parámetro un punto, que indica el directorio que estas posicionado. La idea seria ubicarse en la raíz o directorio principal para lanzar el comando.
git add .
1.2. Deshacer cambios
1.2.1. Conceptos
Se puede revertir los cambios de un archivo, o de todos los archivos que se cambiaron de forma temporal o permanente.
1.2.2. Deshacer cambios locales
Si modificaste un archivo, y por alguna razón no podemos usar el shortcut Ctrl+z
para volver atras porque se nos cerró el editor, ó reinició el ordenador.
Podemos volver los cambios del archivo antes de esa modificación
haciendo uso del comando checkout seguido de dos guiones y del nombre de archivo.
git checkout -- archivo.html
Observación: Un cambio es local, cuando modificas archivos con tu editor de texto, y guardás los cambios.
1.2.3. Deshacer cambios de un archivo del stage
Si modificaste un archivo, lo guardaste y lo agregaste al repositorio local con git add
aún se pueden deshacer los cambios. Necesitarás usar primero el reset head
para decirle
a git que no quieres el último cambio, y luego proceder como antes con checkout para deshacer el cambio guardado.
git reset HEAD archivo.html
Observación:
Un cambio está en stage, si utilizaste el comando git add
1.2.4. Deshacer cambios con "reset" sin borrar historial (stage)
Una solución a "no borrar los commits del historial" que es posible que a veces
lo hagamos de forma intencional por pequeños cambios es pasar el parámetro soft
.
Con este parámetro soft
los cambios de los commits apareceran en el stage,
caso contrario a que si usamos hard. Con este segundo se debe tener cuidado,
porque apuntará al commit indicado y los anteriores a él se borrarán del stage,
no pudiendo ver diferencias o hacer checkout de ellos.
git reset --soft 6148578
Observación:
El hash de un commit se puede obtener utilizando git log --oneline
aparece a la izquierda de mensaje
1.3. Revertir todos los cambios de forma temporal
Con el comando stash
en realidad movemos los cambios a otro lugar como si
lo escondieramos. Si mientras realizabamos cambios(A), y de repente nos
piden cambios(B), ocultamos los cambios(A) con stash
. Hacemos los cambios(B)
git stash git revert
1.4. Ver un resumen de los commits
git log --oneline
2. Branches
2.1. Crear un branch
Los branches nos permiten crear nuevas funcionalidades o modificaciones del proyecto sin modificar de forma directa en él. Por tanto podemos crear un branch para trabajar sobre esta nueva mejora lanzar commits y push al repositorio por más que aún esté en desarrollo lo que realizamos.
git branch nombre-del-Branch
2.2. Crear un branch y cambiar al nuevo branch
Cuando creamos un branch, suele quedarse posicionado en el master, de esta manera podemos crear el branch y ya trabajar sobre él.
git checkout -b nombre-del-branch
2.3. Modificar el nombre de un branch
git branch -m nombre-del-branch nuevo-nombre-del-branch
2.4. Borrar branch local
git branch -d nombre-del-branch
2.5. Listar branches creados
git branch
2.6. Cambiarse a un branch
git checkout nombre-del-branch
3. Tags ó Etiquetas
Sirven para tener un control de versiones del proyecto. Existen dos tipos "ligeros" y "anotados", los segundos son los más recomendados en caso de querer tener más información.
3.1. Crear tag
git tag -a v1.0 -m "Proyecto v1.0.0"
3.2. Listar tags
git tag
3.3. Eliminar tag
git tag -d v1.0
4. Stash
Para esconder cambios utilizamos el comando stash
4.1. Listar cambios ocultos
git stash list
4.2. Aplicar el ultimo cambio
git stash apply
4.3. Guardar un stash mas descriptivo
git stash save "Se ha realizado cambios en la letra fuente"
4.4. Mostrar informacion de un stash
git stash show
4.5. Remover de la pila del stash
git stash drop
5. Referencias
5.1. Referencias Web Extraoficiales
- Como deshacer cambios - dev.to
- Agregar color a la terminal de GIT - Nathanhoad.net
- Agregar color a la terminal de GIT - Leaseweb.com
- Interpretación gráfica del comando commit - Github, Pvigier
- Diferencias entre los comandos rebase y merge - Blog DataDrivenInvestor
- Interpretación gráfica del historial - Bitsnbites.eu
- Tutorial de Git - By Jingwei, John Liu
- Interpretación gráfica del historial y comandos - Jeffsaracco.com