Qué es Git
Encuentra la definición e importancia de Git, y conoce su rendimiento, seguridad y flexibilidad como sistema de control de versiones.
Este capítulo explica qué es Git, por qué se convirtió en el estándar para el seguimiento de código fuente, y cómo sus decisiones de diseño — historial distribuido, almacenamiento por contenido y ramas económicas — se traducen en beneficios cotidianos para desarrolladores y equipos. Al finalizar comprenderás dónde encaja Git, conocerás los comandos básicos para comenzar y sabrás qué capítulos relacionados leer a continuación.
Definición
Git es un sistema de control de versiones (VCS) que registra los cambios realizados en un conjunto de archivos a lo largo del tiempo, de modo que puedes recuperar cualquier versión anterior, ver quién cambió qué y trabajar en el mismo proyecto en paralelo sin sobrescribirse mutuamente. Es el VCS más utilizado en el desarrollo de software.
Git fue creado en 2005 por Linus Torvalds, el autor del kernel de Linux, para gestionar el propio código fuente de Linux después de que el proyecto perdiera acceso a su herramienta anterior. Hoy impulsa proyectos de todo tamaño, desde un solo script hasta el propio kernel de Linux.
La característica definitoria de Git es que es distribuido. En lugar de mantener el historial del proyecto en un único servidor central, cada desarrollador clona una copia completa del repositorio —historial completo incluido— en su propia máquina. Puedes hacer commits, crear ramas, ver el historial y buscar en el log completamente sin conexión; solo necesitas la red para compartir trabajo con otros.
Distribuido vs. centralizado. En un VCS centralizado (como Subversion), hay un servidor autoritativo único y hacer commits requiere conexión de red. En un VCS distribuido como Git, cada clon es una copia de seguridad completa, la mayoría de las operaciones son locales y por tanto rápidas, y no existe un único punto de fallo.
Importancia de Git
Git es un VCS distribuido, rápido y eficiente que maneja proyectos de cualquier tamaño, desde pequeños scripts hasta grandes bases de código. Algunas razones por las que importa en el trabajo diario:
- Ramas locales económicas. Crear una rama es casi instantáneo porque Git solo escribe un pequeño puntero, por lo que experimentar de forma aislada es la norma y no la excepción. Consulta git branch.
- Un área de preparación conveniente. Git permite seleccionar exactamente qué cambios irán en el próximo commit antes de registrarlo, lo que mantiene cada commit enfocado. Consulta git add.
- Múltiples flujos de trabajo. La misma herramienta sirve tanto para un desarrollador en solitario como para un equipo de 100 personas. Consulta flujos de trabajo de Git.
- Gratuito y de código abierto. No hay costo de licencia, y el código fuente está abierto para inspección y contribución.
- Desarrollo no lineal. Muchas líneas de trabajo pueden avanzar en paralelo y fusionarse posteriormente, de modo que los desarrolladores y equipos trabajan por separado sin interrumpirse mutuamente.

Rendimiento de Git
Git está construido para la velocidad, y la mayor parte de esa velocidad proviene del hecho de que las operaciones se ejecutan contra el repositorio local en lugar de un servidor remoto. Crear ramas, fusionar, hacer commits y comparar versiones anteriores están todos optimizados para sentirse instantáneos incluso en historiales extensos.
Una decisión de diseño clave es que Git rastrea el contenido, no los archivos. Al hacer un commit, Git almacena una instantánea del contenido de cada archivo; si un archivo no cambia entre commits, Git almacena un puntero al contenido idéntico que ya tiene en lugar de una nueva copia. Dado que el almacenamiento se basa en el contenido, Git puede detectar cuándo un archivo simplemente fue renombrado, dividido o reorganizado. En disco, los objetos del repositorio usan una combinación de codificación delta (almacenando diferencias entre objetos similares) y compresión zlib, lo que mantiene compactos incluso los historiales largos.
Seguridad de Git
La principal prioridad de Git es la integridad del código fuente gestionado. Cada objeto de un repositorio — contenidos de archivos, directorios, commits y etiquetas — se identifica mediante un hash criptográfico de su contenido. Como el hash de cada commit también incorpora el hash de su padre, todo el historial está encadenado: cambiar cualquier contenido pasado cambiaría todos los hashes que le siguen, haciendo detectable cualquier manipulación silenciosa.
Git históricamente usó SHA-1 para estos hashes y está haciendo la transición hacia SHA-256 para reforzar esa garantía. Además de la integridad, también puedes verificar quién hizo un commit firmando commits y etiquetas con una clave GPG o SSH, de modo que los revisores puedan confirmar que un cambio provino de un autor de confianza.
Flexibilidad de Git
Una de las ventajas que ofrece Git es su flexibilidad en varios aspectos:
- Seguimiento de cambios – Cada commit lleva un autor, una marca de tiempo y un mensaje, por lo que siempre tienes un registro legible de qué cambió y por qué.
- Copia de seguridad y restauración – Como cada clon contiene el historial completo, la máquina de cada desarrollador es efectivamente una copia de seguridad, y cualquier estado pasado puede ser restaurado.
- Colaboración – Los equipos pueden trabajar en el mismo proyecto a la vez y combinar su trabajo mediante fusiones.
- Ramas y fusiones – El trabajo ocurre en una rama y, una vez revisado y aprobado, se fusiona de nuevo en la rama principal. El historial muestra quién cambió cada archivo y exactamente qué líneas difieren.
- Despliegue – Git no despliega código por sí mismo, pero rastrea versiones exactas e integra perfectamente con pipelines de CI/CD que construyen y entregan esas versiones.

Control de Versiones con Git
Hoy en día, Git es el sistema de control de versiones más preferido porque tiene casi todo lo que los desarrolladores necesitan para obtener resultados más efectivos. Las principales razones de esto se enumeran a continuación:
- Git es tan popular que la mayoría de los desarrolladores pueden trabajar con él incluso antes de graduarse en colegios o universidades. Además, Git se considera la base de los sistemas de control de versiones, porque los desarrolladores que ya han aprendido a trabajar con él pueden aprender fácilmente otros sistemas.
- Debido a su prevalencia, muchas herramientas y servicios de software importantes están incorporados en Git.
- Hay muchos libros, tutoriales e incluso sitios web especializados que pueden ayudar a los desarrolladores a aprender Git.
- Como Git es software de código abierto, los desarrolladores tienen la oportunidad de usarlo sin pagar ningún cargo.
La principal razón por la que Git es criticado es la dificultad de aprenderlo. En particular, algunos términos usados en Git pueden tener definiciones diferentes a las de otros VCS. Sin embargo, vale la pena aprenderlo, ya que la capacidad de usar Git es una excelente ventaja para equipos y desarrolladores individuales y es una de las claves de su éxito futuro.
Las soluciones Git más populares
Varias plataformas de terceros gestionan repositorios Git y se utilizan ampliamente para el desarrollo de software rápido y efectivo. Los servicios de alojamiento basados en Git más populares son GitHub, Bitbucket y GitLab.
GitHub es un servicio de alojamiento de repositorios basado en Git, lanzado originalmente en 2008 por Tom Preston-Werner, Chris Wanstrath y PJ Hyatt. Es la plataforma de alojamiento de repositorios más grande con más de 38 millones de proyectos. Permite alojar y revisar código, gestionar proyectos y desarrollar software.
Bitbucket fue lanzado en 2008 por una startup australiana y originalmente solo admitía proyectos Mercurial. En 2010 Bitbucket fue adquirido por Atlassian, y desde 2011 comenzó a admitir el alojamiento de Git, que es ahora su enfoque principal. Proporciona repositorios privados ilimitados gratuitos, integración con Jira y Trello y entrega continua integrada.
GitLab comenzó como un proyecto de Dmitriy Zaporozhets y Valery Sizov en 2011, cuyo objetivo era proporcionar una alternativa a las soluciones de gestión de repositorios disponibles. La empresa, sin embargo, solo se constituyó formalmente en 2014. Proporciona integración y entrega continua, desarrollo ágil, Auto DevOps, etc.
Comandos Básicos de Git
Una vez que Git está instalado, unos pocos comandos fundamentales cubren el flujo de trabajo diario:
git init– Crea un nuevo repositorio Git en el directorio actual.git clone <url>– Descarga un repositorio existente, con todo el historial, desde un servidor remoto.git add <file>– Prepara los cambios para que se incluyan en el próximo commit.git commit -m "message"– Registra los cambios preparados como una nueva instantánea con un mensaje descriptivo.git status– Muestra qué archivos han cambiado, están preparados o sin seguimiento.git push– Sube los commits locales a un repositorio remoto.
Un primer repositorio, de principio a fin
La secuencia siguiente inicia un nuevo proyecto, registra un primer commit e inspecciona el resultado. Ejecuta estos comandos en una carpeta vacía para seguir el ejemplo:
# 1. Start tracking the current folder
git init
# 2. Create a file and stage it for the next commit
echo "# My Project" > README.md
git add README.md
# 3. Record the snapshot
git commit -m "Add project README"
# 4. See the history you just created
git log --onelineLa salida de git log --oneline es una línea por commit — un hash corto seguido del mensaje:
a1b2c3d (HEAD -> main) Add project READMEDesde aquí añadirías un remoto y ejecutarías git push para compartir el trabajo, o crearías una rama para comenzar una nueva funcionalidad. El capítulo git log profundiza en la lectura del historial.