Hoja de Trucos de Git: Comandos, Flujo de Trabajo y Mejores Prácticas
Git es el sistema de control de versiones más utilizado en el mundo. Ya seas un desarrollador independiente o parte de un gran equipo, dominar Git es esencial para gestionar tu historial de código y colaborar eficazmente.
Usa esta hoja de trucos como una referencia rápida para los comandos y flujos de trabajo comunes de Git.
1. Flujo de Trabajo Básico
El ciclo principal para realizar cambios y guardarlos en tu repositorio.
| Comando | Descripción | Ejemplo |
|---|---|---|
git init |
Inicializa un nuevo repositorio Git local | git init |
git clone |
Crea una copia de un repositorio remoto | git clone [url] |
git add |
Prepara los cambios para el próximo commit (stage) | git add . (añade todo) |
git commit |
Guarda los cambios preparados en el historial | git commit -m "feat: login" |
git status |
Muestra el estado del directorio de trabajo | git status |
git push |
Sube los commits locales al remoto | git push origin main |
git pull |
Obtiene y fusiona los cambios del remoto | git pull origin main |
git fetch |
Descarga los cambios del remoto (sin fusionar) | git fetch origin |
2. Ramas (Branching) y Fusión (Merging)
Las ramas te permiten trabajar en diferentes funcionalidades o correcciones de forma aislada.
- Crear Rama:
git branch [nombre] - Cambiar de Rama:
git checkout [nombre](ogit switch [nombre]) - Crear y Cambiar:
git checkout -b [nombre] - Fusionar Rama:
git merge [nombre](fusiona [nombre] en la rama actual) - Rebase de Rama:
git rebase [nombre](vuelve a aplicar los commits sobre [nombre]) - Eliminar Rama:
git branch -d [nombre]
3. Deshacer Cambios
Cómo corregir errores o volver a un estado anterior.
- Revertir Commit:
git revert [commit-hash](crea un nuevo commit que deshace los cambios) - Reset (Soft):
git reset --soft HEAD~1(deshace el commit, mantiene los cambios preparados) - Reset (Hard):
git reset --hard HEAD~1(deshace el commit y ¡elimina los cambios! usar con precaución) - Stash de Cambios:
git stash(oculta temporalmente los cambios no confirmados) - Pop de Stash:
git stash pop(recupera los cambios ocultos)
4. Inspección y Depuración
Herramientas para ver el historial y encontrar errores.
| Comando | Descripción |
|---|---|
git log |
Muestra el historial de commits |
git diff |
Muestra los cambios entre commits o el árbol de trabajo |
git blame [archivo] |
Muestra quién cambió cada línea en un archivo |
git show [commit] |
Muestra los detalles de un commit específico |
git bisect |
Usa la búsqueda binaria para encontrar el commit que introdujo un error |
Preguntas Comunes (FAQ)
Q: Merge vs Rebase: ¿Cuál debería usar?
A: Merge crea un nuevo "commit de fusión" y preserva el historial completo y la cronología. Rebase reescribe el historial al mover tus commits a la punta de la rama de destino, creando un historial lineal y más limpio. Regla de oro: Nunca hagas rebase en ramas públicas; úsalo para limpieza local antes de subir tus cambios.
Q: ¿Cómo soluciono un conflicto de fusión?
A: Cuando ocurre un conflicto, Git marcará los archivos. 1. Abre el archivo y busca <<<<<<<, =======, y >>>>>>>. 2. Edita el código para mantener lo que quieras. 3. Ejecuta git add [archivo]. 4. Ejecuta git commit.
Q: ¿Qué es un "detached HEAD"?
A: Significa que has hecho checkout de un commit o etiqueta específica en lugar de una rama. No estás en ninguna rama. Cualquier commit nuevo se perderá si cambias de lugar sin crear una rama nueva. Para guardar los cambios: git checkout -b nuevo-nombre-de-rama.
Q: ¿Cuáles son las mejores prácticas para .gitignore?
A: Ignora siempre los secretos de entorno (.env), artefactos de construcción (dist/, build/), carpetas de dependencias (node_modules/) y archivos específicos del SO (.DS_Store). Usa las plantillas de la comunidad (como las de GitHub) para tu lenguaje o framework específico.
Relacionado en Tool3M
- Página de Inicio: Descubre más herramientas para desarrolladores y referencias para aumentar tu productividad.