Git es esencial para el desarrollo de software moderno, pero muchos desarrolladores solo usan lo básico y pasan por alto una serie de comandos poderosos.
Aquí te traigo 10 comandos secretos que te harán ahorrar tiempo y mejorar tu flujo de trabajo. ¡Vamos a descubrirlos!
1. El Botón de Deshacer de Git
Cuando cometes un error y quieres deshacer los cambios en un archivo o deshacer el “staging” sin perder el trabajo, git restore es tu salvavidas.
Descartar cambios en un archivo:
git restore <nombre-del-archivo>
Deshacer un archivo del “staging”:
git restore --staged <nombre-del-archivo>
2. Una Forma Más Inteligente de Cambiar de Rama
Si estás acostumbrado a usar git checkout para cambiar entre ramas, te encantará git switch. Es más específico para esta tarea.
Cambiar a una rama existente:
git switch <nombre-de-la-rama>
Crear y cambiar a una nueva rama:
git switch -c <nombre-de-nueva-rama>
3. Trabaja de Manera Más Eficiente
¿Trabajas en un monorepositorio enorme? Con git sparse-checkout solo puedes descargar las carpetas o archivos que realmente necesitas.
Habilitar sparse-checkout:
git sparse-checkout init --cone
Agregar directorios específicos:
git sparse-checkout set <dir1> <dir2>
4. Compara Rango de Commits Como un Profesional
¿Necesitas comparar dos versiones de una rama o serie de parches? git range-diff facilita la revisión de cambios entre rangos de commits.
Comparar rangos de commits:
git range-diff <rango-commit-1> <rango-commit-2>
5. Agrega Metadatos a los Commits Sin Desorden
A veces no basta con un mensaje de commit. Con git notes puedes agregar información adicional sin ensuciar el historial de commits.
Agregar una nota a un commit:
git notes add -m "Tu nota aquí" <hash-del-commit>
Ver las notas:
git log --show-notes
6. Trabaja en Varias Ramas Simultáneamente ️
Si necesitas trabajar en varias ramas a la vez, git worktree permite crear directorios separados para cada una, evitando tener que cambiar constantemente.
Crear un nuevo worktree para una rama:
git worktree add ../nuevo-directorio <nombre-de-la-rama>
Listar todos los worktrees:
git worktree list
7. Encuentra Bugs Como un Detective ️♂️
Si necesitas encontrar qué commit introdujo un error, git bisect te ayudará a hacer una búsqueda binaria en tu historial de commits.
Iniciar bisect:
git bisect start
Marcar un commit como “malo”:
git bisect bad
Marcar un commit como “bueno”:
git bisect good <hash-del-commit>
Resetear cuando termines:
git bisect reset
8. Reescribe la Historia Sin Romper Nada
Con git replace puedes crear un commit de reemplazo sin cambiar el hash original del commit.
- Crear un commit de reemplazo
git replace <hash-commit-antiguo> <hash-commit-nuevo>
9. Encuentra y Repara Corrupciones en el Repositorio
Si sospechas que tu repositorio está corrupto, git fsck verifica y te ayuda a recuperar objetos perdidos.
Verificar el repositorio:
git fsck --full
10. Crea Tus Propios Comandos de Git
¿Cansado de escribir comandos largos? Con git alias puedes crear atajos personalizados para tus operaciones más comunes.
Agregar un alias:
git config --global alias.co checkout
Usar el alias:
git co <nombre-de-la-rama>
¿Cómo Masterizar GIT BISECT?
Vamos a profundizar en git bisect. Si tienes que encontrar el commit que introdujo un bug, este comando hace el trabajo de manera rápida y eficiente.
Pasos:
1. Iniciar la búsqueda
git bisect start
2. Marcar el commit problemático
git bisect bad
3. Marcar un commit anterior como “bueno”
git bisect good <hash-del-commit-bueno>
4. Git selecciona un commit intermedio. Prueba y marca como “bueno” o “malo”
git bisect good o git bisect bad
5. Repite hasta que Git encuentre el commit exacto que causó el error
Consejo Pro: Automatiza este proceso con un script de prueba.
git bisect run ./test-script.sh
Conclusión
Git es mucho más que solo commit, push y pull. Con estos comandos secretos, puedes ahorrar tiempo, solucionar problemas complejos y ser más eficiente. ¡Ahora es tu turno de probarlos!