15 Comandos de Git que quizá no conozcas

Oscar Uve
4 min readApr 30, 2019

Este artículo fue traducido originalmente de Dev.to por Zaiste

Usar Git puede ser intimidante a veces. Hay tantos comandos y detalles para aprender. La documentación, sin embargo, si bien es inmensa, también es muy accesible. Una vez que superes la sensación inicial de estar abrumado, las cosas comenzarán a encajar en su lugar.

Por ello te dejamos una lista de 15 comandos de Git que quizás aún no conozcas, pero esperamos que te ayuden en tu viaje para dominar esta herramienta.

1. Modifica el commit más reciente

git commit --amend

--amend nos permite añadir cambios preconfigurados (por ejemplo, agregar un archivo olvidado) al commit anterior. Al incluir --no-edit en el comando, se modificará el último commit sin cambiar su mensaje. Si no existen cambios, --amend te permitirá volver a redactar el último mensaje del commit.

Para más información: git help commit.

2. Agrega partes seleccionadas de archivos interactivamente

git add -p

-p (o —patch) permite seleccionar interactivamente, partes de cada archivo rastreado en un commit. De esta forma, cada commit contiene solo cambios relacionados.

Para más información: git help add.

3. Realiza un Stash de solo ciertas partes de archivos

git stash -p

Al igual que en git-add, puedes usar la opción --patch para seleccionar de manera interactiva partes de cada archivo rastreado para hacer un stash.

Para más información: git help stash.

4. Stash sin tracking

git stash -u

Por defecto cuando haces un stash, los archivos sin tracking no se incluyen. Para cambiar ese comportamiento e incluir estos archivos usaremos el parámetro -u. Tenemos también -a (—all) que guarda todos los archivos no rastreados e ignorados por completo, lo que probablemente sea algo que normalmente no necesitarás.

5. Revertir partes específicas de archivos

git checkout -p

--patch puede usarse para descartar selectivamente partes de cada archivo rastreado. Conocemos este comando como git discard

Para más información: git help checkout.

6. Cambia a una rama previa

git checkout -

Este comando nos permite cambiar rápidamente a la rama previa. En contexto - es un alias para la rama anterior. También se puede usar con otros comandos.

7. Revertir cambios locales

git checkout .

Si está seguro de que todos tus cambios locales se pueden descartar, puedes usar . para borrarlos de una vez por todas. Sin embargo, una buena práctica es usar siempre --patch.

8. Mostrar cambios

git diff --staged

Este comando muestra todos los cambios por etapas (que se agregaron al index) en contraste con solo git diff, que solo muestra los cambios en el directorio de trabajo (sin los del index).

Para más información: git help diff

9. Renombra tus ramas localmente

git branch -m old-name new-name

Si deseas renombrar tu rama actual, puede acortar este comando de la siguiente forma:

git branch -m new-name

Para más información: git help branch

10. Renombrar ramas de forma remota

Para cambiar el nombre de una rama de manera remota, una vez que hayas cambiado el nombre de tu rama localmente, primero debes eliminar esa rama de forma remota y luego hacer push con la rama renombrada nuevamente.

git push origin :old-name

git push origin new-name

11. Abre todos los archivos con conflictos al mismo tiempo

Modificar tus archivos puede provocar conflictos, el siguiente comando abrirá todos los archivos que necesiten ser resueltos.

git diff --name-only --diff-filter=U | uniq | xargs $EDITOR

12. ¿Qué cambió?

git whatchanged —-since=‘2 weeks ago’

Este comando mostrará un registro con los cambios introducidos por cada commit de las últimas dos semanas.

13. Eliminar el archivo de tu último commit

Digamos que hiciste commit de un archivo por error. Puedes eliminarlo rápidamente combinando los comandos rm y commit --amend

git rm --cached <file-to-remove>

git commit --amend

14. Encuentra ramas específicas

git branch --contains <commit>

Este comando mostrará todas las ramas que contengan un commit en particular.

15. Optimiza tu repositorio localmente

git gc --prune=now --aggressive

Para más información: git help gc

Bonus

Aunque me gusta mucho el CLI, recomiendo ampliamente checar Magit para mejorar tu experiencia con Git. Es uno de las mejores softwares que he usado.

También hay una fantástica visión general de workflows Git recomendados disponible a través del comando de help. ¡Asegúrate de leerlo detenidamente!

git help workflows

¡Recuerda suscribirte a nuestro newsletter para recibir noticias y contenido exclusivo de Fixter!

--

--