Especialista en Software
20 Sep 2018

Lista de comandos útiles de Git

Comandos útiles de Git

Aprenderse toda la lista de comandos de Git es algo imposible. Con el tiempo dominamos los suficientes. Sin embargo, de vez en cuando necesitamos buscar alguno que sabemos que existe pero no recordamos. Aquí dejo la lista de comandos útiles de Git y que no necesitamos aprender de memoria.

Después de instalar Git

Asignar tu nombre y correo para que tus commits queden firmados con estos datos. Al menos el correo debe coincidir con el que uses en plataformas como Github, Gitlab o Bitbucket. En las configuraciones de las plataformas puedes añadir más de un correo por si usas Git en varios computadores con diferentes correos, por ejemplo, el personal y el del trabajo.

git config --global user.name "<tunombre>"
git config --global user.email <tucorreo>

Configuración para cuando se realice un "git push" solo se suban los cambios de la rama actual.

git config --global push.default simple

Para evitar inconvenientes con el formato de los archivos cuando se trabaja en un equipo de desarrolladores que usan diferentes sistemas operativos se debe aplicar una de estas configuraciones.

git config --global core.autocrlf true Si usan Linux y Windows. (Configuración por defecto)
git config --global core.autocrlf input Si usan únicamente Linux y Mac.
git config --global core.autocrlf false si usan únicamente Windows.

Clonar o iniciar un repositorio

git init  Iniciar un repositorio local.
git clone <url>  Clonar un repositorio en mi computador.
git status  Ver el estado de los archivos en el repositorio.

Agregar o modificar repositorios remotos

git remote add origin <url> Agregar repositorio remoto principal (origin).
git remote add upstream <url> Agregar repositorio remoto paralelo (upstream, o cualquier otro nombre).
git remote set-url origin <nueva-url> Modificar url de un repositorio remoto.
git remote -v Ver todos los repositorios remotos.
git remote r <nombre> Remover un repositorio remoto.
git remote show origin Ver estado de las ramas del repositorio remoto y local.

Agregar archivos al escenario

git add <listado de archivos> Uno o varios archivos al escenario.
git add --all Todos los archivos (nuevos o modificados).
git add *.js Por extensión.
git add src/ Por carpeta

Consignar cambios

git commit -m "Mensaje descriptivo" Guarda los cambios agregados al escenario.
git commit -a -m "Mensaje descriptivo" Agrega todos los cambios al escenario y los guarda.
git commit --amend -m "Mensaje descriptivo" Corrige el último commit. Cambios en archivos y también el mensaje.

Subir y bajar consignaciones del repositorio remoto

git push -u origin master Sube las consignaciones al repositorio remoto.
git pull origin <rama> Descarga las consignaciones del repositorio remoto y realiza la mezcla con el repositorio local.
git fetch origin <rama> Descarga las consignaciones del repositorio remoto pero no realiza la mezcla con el repositorio local.
git pull Descarga las consignaciones del repositorio remoto y realiza la mezcla con el repositorio local para la rama actual. Además, descarga todas las referencias a ramas y tags.

Revertir cambios

git checkout -- <archivo> Deshace los cambios en un archivo
git reset --hard HEAD Deshace todos los cambios sin consignar.
git stash Deshacer/ocultar los cambios del escenario actual.
git stash pop Restaurar cambios ocultos del escenario actual.
git reset --soft HEAD^ Devuelve al commit anterior.
git reset --hard HEAD^ Deshace completamente los cambios hasta la penúltima consignación.
git reset --hard HEAD^^ Deshace completamente los cambios de las últimas 2 consignaciones.

Branch - Ramas

git branch Muestra las ramas en el repositorio local.
git branch -r Muestra las ramas en el repositorio remoto.
git branch <nombre> Crea una rama.
git checkout -b <nombre> Agregar una rama y moverse a esta.
git checkout <rama> Cambiar al escenario de otra rama en el repositorio local.
git checkout -t origin/<rama> Cambiar al escenario de una rama del repositorio remoto.
git checkout -b <nuevonombre> origin/<ramaremota> Agregar al repositorio local una rama remota con un nombre distinto.
git merge <rama> Mezclar consignaciones de una rama a la rama actual.
git branch -d <rama> Eliminar rama local.
git branch -D <rama> Forzar eliminación de rama local.
git push origin :<rama> Eliminar rama del repositorio remoto.
git remote prune origin Eliminar referencias de ramas remotas que ya no existen.

Etiquetas - Tags - Releases

git tag Ver lista de tags.
git tag -n Ver lista de tags con el mensaje.
git tag -a <nombre> -m "<mensaje>" Agregar tag.
git checkout <tag> Moverse al escenario de un tag.
git push --tags Subir todos los tags nuevos al repositorio remoto.
git clone -b <tag> <url-repository> Clonar un tag específico de un repositorio.
git tag -d <tag> Eliminar un tag del repositorio local.
git push origin :refs/tags/<tag> Eliminar un tag del repositorio remoto.

Comparaciones

git diff Ver cambio actuales.
git diff HEAD Cambios de la última consignación.
git diff HEAD^ Cambios de la penúltima consignación.
git diff HEAD~5 Cambios de 5 consignaciones atrás.
git diff <archivo> Ver cambios de un archivo específico.
git diff 4fb063f..f5a6ff9 Ver diferencias entre 2 commits.
git diff <rama1> <rama2> Ver diferencias entre 2 ramas.
git blame <archivo> --date short Conocer las historia de un cambio que no se entiende.

Eliminar seguimiento de archivos

git rm <archivo> Elimina el archivo del escenario y del sistema de archivos.
git rm --cache <archivo> Elimina el archivo del escenario y todo su historial del repositorio.

Historial de consignaciones

git log Muestra la lista de consignaciones de la más reciente a la más antigua.
git log --oneline Muestra la lista de consignaciones de manera resumida.
git log -5 Muestra las últimas 5 o x consignaciones.
git log --since=1.minute.go Muestra las consignaciones desde hace un minuto.
git log --since=1.day.ago Muestra las consignaciones desde hace un día.
git log --since=1.month.ago --until=2.weeks.ago Muestra las consignaciones desde hace un mes hasta hace 2 semanas.
git log --since=2014-01-01 --until=2018-12-21 Muestra las consignaciones entre 2 fechas.

Alias

Y para agilizar el trabajo estos son los alias para los comandos que más uso. Podemos crear el alias con el nombre que queramos para cualquier comando. Aquí estan los mios.

git config --global alias.co checkout co para checkout
git config --global alias.br branch br para branch
git config --global alias.ci commit ci para commit
git config --global alias.st status st para status
git config --global alias.aa 'add --all' aa para add --all (agregar todo)
git config --global alias.lol 'log --oneline' lol para ver commits en formato corto
git config --global alias.lg 'log --pretty="format:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit' log formato amplio de una sola linea

 

Espero sea de tu utilidad y pases por aquí de vez en cuando. Recuerda que lo estaré actualizando según lo vea necesario. Gracias.

CLI • GIT Leave a comment