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