Skip to main content

Configuración inicial

Configurar identidad en Git:
Ver la configuración actual:

Creación y gestión de repositorios

Crear un nuevo repositorio:
Clonar un repositorio existente:
Clonar un repositorio sin historial completo (útil para deploys, ya que evita descargar todo el historial de commits y reduce el tamaño del clon):

Trabajo con ramas

Listar ramas locales y remotas:
Crear una nueva rama y cambiar a ella:
Cambiar entre ramas:
Eliminar una rama local:
Eliminar una rama remota:

Guardar cambios

Añadir archivos al área de staging:
Confirmar cambios con un mensaje:
Subir cambios al repositorio remoto:

Actualizar cambios

Obtener los cambios del repositorio remoto sin fusionar:
Obtener y fusionar cambios:

Deshacer cambios

Descartar cambios en un archivo (volver al estado del último commit):
Diferencia con git stash:
  • git checkout -- [archivo] descarta los cambios de un archivo específico.
  • git stash guarda todos los cambios no confirmados para recuperarlos más tarde.
Restaurar el estado anterior de un commit (mueve HEAD a otro commit y borra los cambios posteriores):
Revertir un commit sin perder el historial (crea un nuevo commit que revierte los cambios de otro commit):
Para estos comandos, primero necesitas el ID del commit, que puedes obtener con:

Trabajo con historiales y logs

Ver el historial de commits:
Ver cambios en archivos antes de confirmar:
Ver cambios entre commits:

Fusionar y rebase

Fusionar cambios de una rama en otra (mantiene el historial de commits de ambas ramas):
Hacer un rebase (reestructura el historial de commits para hacerlos más lineales y ordenados, útil cuando trabajas con ramas feature en proyectos colaborativos):
Diferencia entre merge y rebase:
  • merge mantiene el historial de commits como está y añade un commit de merge.
  • mueve los commits de la rama actual sobre otra, creando un historial más limpio.

Otros comandos útiles

Eliminar un archivo del repositorio pero conservarlo localmente:
Cambiar el mensaje del último commit:
Forzar una sincronización con el repositorio remoto: