Comando git

Comando git

El comando git es la interfaz de línea de comandos para interactuar con Git, el sistema de control de versiones distribuido más popular y utilizado del mundo. Creado por Linus Torvalds en 2005 para el desarrollo del núcleo de Linux, permite a los desarrolladores y técnicos registrar el historial de cambios en el código fuente, colaborar en equipo de manera concurrente, gestionar ramas de trabajo y fusionar código de forma eficiente.

Categoría Control de Versiones y Desarrollo
Disponible en Linux / Unix / macOS / Windows
Equivalente en Windows git (disponible de forma idéntica en Git Bash, CMD o PowerShell tras su instalación)
Sustituye a Sistemas centralizados antiguos (como SVN o CVS) y copias manuales de archivos comprimidos (ej. proyecto_v1_final_definitivo.zip).
¿Requiere permisos de administrador? No, se ejecuta completamente a nivel de usuario dentro de los directorios de trabajo locales o repositorios clonados.

¿Qué significa su nombre?

GIT es una palabra en argot británico que significa persona desagradable o tonta. Linus Torvalds eligió este nombre de forma irónica y humorística, explicando en su documentación inicial: "Soy un cabrón egoísta, y nombro a todos mis proyectos según mi propio nombre. Primero Linux, ahora Git".

A nivel técnico, Git fue concebido para ser rápido, eficiente con grandes repositorios y totalmente distribuido, lo que significa que cada copia de trabajo local es un repositorio completo con un historial de cambios íntegro, sin depender de un servidor central constante.

¿Para qué sirve?

El comando git sirve principalmente para:

  • Inicializar y gestionar repositorios de código locales o clonados desde servidores remotos (como GitHub, GitLab o Bitbucket).
  • Registrar (hacer commit) de los cambios realizados en archivos, manteniendo una traza cronológica exacta de qué se modificó, quién y cuándo.
  • Crear ramas (branches) independientes para desarrollar nuevas funcionalidades o corregir errores sin afectar al código de producción estable.
  • Fusionar (merge) diferentes líneas de desarrollo y resolver conflictos de código de forma colaborativa.

Sintaxis

git [subcomando] [opciones] [argumentos...]

A diferencia de la mayoría de comandos de Unix, git actúa como un comando principal que redirige las acciones según el subcomando que se le indique (por ejemplo, git clone, git commit, etc.). Los subcomandos más habituales son:

Subcomando Descripción
init Inicializa un nuevo repositorio de Git vacío en el directorio actual.
clone [url] Clona o descarga un repositorio remoto existente en el equipo local.
add [archivo] Añade archivos al área de preparación (staging area) para incluirlos en el próximo registro.
commit -m "mensaje" Guarda de forma permanente los cambios preparados en el repositorio con un mensaje descriptivo.
status Muestra el estado actual del directorio de trabajo y los archivos modificados o pendientes.

Comandos más utilizados

Comando Descripción
git status Comprueba qué archivos han sido modificados o están listos para guardarse.
git add . Prepara todos los archivos modificados del directorio actual para el siguiente registro.
git commit -m "Corrección de bug en login" Registra los cambios en el historial local adjuntando un mensaje explicativo.
git push origin main Sube los registros locales acumulados hacia el servidor remoto (rama principal).

Equivalencia con otros sistemas

Acción Git (Estándar de la industria) Sistemas Centralizados Antiguos (SVN / CVS)
Crear repositorio local git init svnadmin create
Guardar cambios locales git commit svn commit (requería conexión directa al servidor)
Trabajo offline Totalmente nativo y descentralizado Muy limitado o imposible sin conexión al servidor central

Ejemplos

Inicializar un repositorio Git en una carpeta de proyecto local

git init

Comprobar el estado de los ficheros del proyecto

git status

Preparar y registrar cambios en el historial del repositorio

git add .
git commit -m "Añadida la página de contacto inicial"

Clonar un repositorio remoto de prácticas desde GitHub

git clone https://github.com/usuario/repositorio-practicas.git

Ejemplo de salida

On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   index.html

no changes added to commit (use "git add <file>..." to update what will be committed)

¿Cómo interpretar la salida?

  • On branch main: Indica que actualmente te encuentras trabajando sobre la rama principal del repositorio (llamada main).
  • Changes not staged for commit: Alerta de que hay modificaciones en archivos del proyecto que todavía no han sido preparados para guardarse.
  • modified: index.html: Muestra el archivo concreto que ha sufrido alteraciones desde el último registro guardado.

Errores habituales

  • Olvidar ejecutar git add antes de hacer un git commit, lo que provoca que Git informe de que no hay cambios preparados para registrar (nothing to commit).
  • Intentar hacer un git commit sin haber configurado previamente la identidad del usuario (nombre y correo electrónico) mediante los comandos git config --global user.name y git config --global user.email.

Conceptos relacionados

  • Control de versiones distribuido
  • Área de preparación (Staging Area)
  • Ramas (Branches) y Fusión (Merge)
  • Repositorios remotos (GitHub / GitLab)
  • Conflictos de código

Comandos relacionados

  • git log
  • git pull
  • git push
  • git branch
  • git checkout / git switch

Curiosidades

Git es tan potente y fiable que se ha convertido en el estándar indiscutible de la industria del software. No solo se utiliza para escribir código de programación; hoy en día se emplea masivamente para redactar libros académicos, tesis doctorales, documentación técnica en Markdown e incluso para sincronizar configuraciones complejas de servidores entre administradores de sistemas.


Prácticas propuestas

  1. Crea una nueva carpeta en tu equipo para un proyecto de clase, accede a ella e inicializa un repositorio local ejecutando git init.
  2. Crea un archivo de texto llamado index.html dentro de la carpeta con un contenido básico de prueba.
  3. Ejecuta git status para observar cómo Git detecta el archivo nuevo como un elemento no rastreado (untracked).
  4. Prepara el archivo para su registro ejecutando git add index.html y vuelve a comprobar el estado con git status.
  5. Guarda los cambios de forma permanente en el historial local utilizando git commit -m "Primer commit del proyecto".
  6. Consulta el historial cronológico de registros ejecutando el comando git log para verificar que todo se ha grabado correctamente.

Consejo: Adquiere el hábito de escribir mensajes de commit claros, descriptivos y breves en imperativo (por ejemplo: "Añade validación de formularios" en lugar de "añadí cosas"); facilitará enormemente la lectura del historial cuando trabajes en equipo.