coldwa.st
Todas las guíasProgramaciónWebDatosHerramientasBases de datosHaskellConceptosCabal y buildsToolchainCompiladorRendimientoEditor y HLS

Programación · herramientas · control de versiones

¿Qué es Git?

Por ColdwastActualizado el 14 de junio de 20267 min de lectura#git#tools#workflow
Líneas de código fuente en una pantalla oscura
Líneas de código fuente en una pantalla — Git registra el historial completo de cambios de un código como este.

Si escribes código, te toparás con Git en un día. Es la herramienta que casi todo proyecto de software usa para registrar cambios, y el cimiento bajo GitHub, GitLab y el flujo de trabajo moderno de desarrollo. Esta guía explica qué es Git, el puñado de conceptos que lo hacen encajar, por qué importa, y en qué se diferencia de GitHub.

La definición corta

Git es un sistema de control de versiones distribuido: registra el historial de cambios de un conjunto de archivos para que puedas revisar, ramificar, fusionar, colaborar y revertir. Creado por Linus Torvalds en 2005 para gestionar el núcleo de Linux, es hoy el estándar de facto. «Distribuido» significa que cada copia del proyecto lleva su historial completo — puedes trabajar, hacer commits y ver el historial completamente sin conexión.

Los conceptos fundamentales

  • Repositorio (repo) — la carpeta del proyecto más todo su historial, almacenados en un directorio oculto .git.
  • Commit — una instantánea guardada de tus archivos en un momento dado, con un mensaje que describe el cambio. El historial es una cadena de commits.
  • Rama (branch) — un puntero móvil que te permite desarrollar una función de forma aislada sin perturbar la línea principal (normalmente main).
  • Merge (fusión) — combinar los cambios de una rama en otra.
  • Remote (remoto) — una copia compartida del repo alojada en otro lugar (p. ej. en GitHub) a la que haces push y de la que haces pull.
Un prompt de terminal en una pantalla
Un prompt de terminal — Git se maneja casi siempre desde la línea de comandos, aunque los editores e interfaces gráficas también lo envuelven.

El flujo de trabajo diario

El bucle que la mayoría de los desarrolladores ejecutan decenas de veces al día:

git clone <url>      # copy a repository locally
# ...edit files...
git add .            # stage the changes you want to save
git commit -m "Add login form"   # save a snapshot with a message
git push             # send your commits to the shared remote

Para trabajar en algo nuevo sin romper la línea principal, ramificas: git checkout -b my-feature, haces commits ahí, y luego haces un git merge (a menudo mediante una pull request) de vuelta en main. Para incorporar el trabajo de otros, haces git pull.

Por qué importa Git

  • Historial y deshacer — cada cambio queda registrado, así que puedes ver quién cambió qué, cuándo y por qué, y revertir un error.
  • Colaboración — muchas personas pueden trabajar en paralelo en el mismo proyecto en ramas, y luego fusionar con seguridad.
  • Experimentación segura — ramifica, prueba algo, deséchalo si falla — la línea principal queda intacta.
  • Está en todas partes — el código abierto, las empresas, los pipelines de CI/CD y el despliegue dan por hecho Git.

Git vs GitHub

Se confunden constantemente. Git es la herramienta de control de versiones que se ejecuta en tu máquina. GitHub (como GitLab o Bitbucket) es un servicio de alojamiento que almacena repositorios Git en línea y añade funciones de colaboración — pull requests, issues, control de acceso, CI. Puedes usar Git sin ninguna cuenta de GitHub; GitHub es un lugar popular donde poner un remote de Git, no Git en sí.

La curva de aprendizaje honesta

Git es potente, y su conjunto de comandos puede resultar confuso al principio — las fusiones pueden entrar en conflicto, y unos pocos comandos pueden reescribir el historial de formas que sorprenden a los principiantes. La buena noticia: el 90 % del trabajo diario solo usa clone, add, commit, push, pull y branch. Domina esos, y aprende el resto (rebase, stash, reset) cuando realmente lo necesites.

Preguntas frecuentes

¿Es Git lo mismo que GitHub? No. Git es el software de control de versiones en tu ordenador; GitHub es un servicio en línea que aloja repositorios Git y añade herramientas de colaboración. Git funciona sin GitHub.

¿Qué es un commit? Una instantánea guardada de tu proyecto en un momento dado, con un mensaje que describe qué cambió. El historial de un proyecto es una secuencia de commits.

¿Tengo que usar la línea de comandos? No — los editores (VS Code) y los clientes gráficos envuelven Git — pero la línea de comandos es universal y vale la pena aprenderla, ya que todo tutorial y sistema de CI la hablan.

¿Qué significa «distribuido»? Cada clon de un repositorio Git contiene el historial completo, así que puedes hacer commits, ramificar y navegar el historial sin conexión. No hay una única copia central de la que dependas para trabajar.

Git registra el código; los algoritmos y las API son lo que ese código expresa. Explora más explicaciones claras en nuestro índice de guías.

Guía independiente y mantenida por la comunidad. coldwa.st es un sitio de recursos de programación; este artículo es texto explicativo nuevo y original sobre Git. Los comandos reflejan el comportamiento estándar de Git — verifícalo con la documentación oficial de Git para detalles y casos límite.