Qué es Git y cómo guardar tus primeros cambios
Autor: Redacción Domeny.ForSale Publicado
En resumen: Git es un sistema de control de versiones distribuido, es decir, una herramienta para guardar el historial de cambios de los archivos. Permite comparar versiones sucesivas, recuperar contenido anterior y combinar el trabajo de varias personas. Funciona de forma local en el ordenador; no necesitas GitHub ni conexión a internet para las tareas básicas.
¿Para qué sirve Git?
Sin control de versiones, es fácil acabar con archivos llamados proyecto-final, proyecto-final2 y proyecto-corregido. Git sustituye esas copias manuales por un historial organizado. Puedes describir, revisar y comparar cada etapa que hayas guardado de forma deliberada.
Git resulta especialmente útil para el código fuente, la configuración, la documentación y los artículos guardados como texto plano, por ejemplo, en Markdown. También puede almacenar fotos o documentos ofimáticos, pero normalmente no mostrará sus cambios con la misma claridad que las diferencias entre líneas de texto. Los archivos binarios grandes que cambian con frecuencia requieren una planificación adicional de su almacenamiento.
Por ejemplo: modificas un formulario de contacto y, tras el cambio, las notificaciones dejan de funcionar. Si habías guardado las etapas anteriores del trabajo en Git, puedes comprobar qué ha cambiado exactamente y revertir la modificación defectuosa. No tienes que reconstruir la versión anterior de memoria.
Repositorio, commit y rama: conceptos básicos
Un repositorio almacena el historial del proyecto y la información que Git necesita para gestionar las versiones. En un proyecto local típico, estos datos se encuentran en el directorio oculto .git, junto a los archivos de trabajo que editas.
Un commit es un estado guardado de los archivos bajo seguimiento, vinculado al historial anterior. Tiene un identificador, información sobre el autor y una descripción. Una buena descripción, como «Corrige la validación de la dirección de correo electrónico», explica el propósito del cambio mejor que «Correcciones». Git no crea commits automáticamente cada vez que guardas un archivo en el editor.
El área de preparación, también llamada índice o staging area, permite seleccionar los cambios que se incluirán en el siguiente commit. Así puedes editar varios archivos, pero guardar por separado la corrección de un error y la actualización de la documentación. Esto facilita la comprensión del historial más adelante.
Una rama, o branch, es una línea de trabajo independiente dentro del repositorio. En ella puedes desarrollar una nueva función sin modificar de inmediato la versión principal del proyecto. La fusión, o merge, combina los cambios de distintas ramas.
El término distribuido significa que una clonación normal del repositorio proporciona una copia local de su historial, no solo acceso a los archivos de un servidor. También existen clones con un historial limitado. En el trabajo habitual, consultar los cambios guardados y crear commits no requiere comunicarse con un servidor central.
Git y GitHub: ¿en qué se diferencian?
Git es una herramienta de control de versiones. GitHub es un servicio que, entre otras cosas, aloja repositorios Git y ofrece funciones de colaboración, como la revisión de cambios o la notificación de errores. GitLab y Bitbucket cumplen una función similar; también puedes mantener el repositorio en tu propio servidor.
Un repositorio remoto es otra copia del repositorio accesible en una dirección concreta. El comando push envía a esa copia los commits locales, mientras que fetch descarga información e historial de la copia remota sin integrarlos en la rama actual. El comando pull descarga los cambios y después los integra; la forma de integración depende de la configuración y de las opciones utilizadas.
Por tanto, crear un commit no publica por sí solo el trabajo en internet. A su vez, enviar cambios a un servicio de alojamiento no implica necesariamente hacerlos públicos: la visibilidad depende de los permisos del repositorio.
Cómo empezar: guardar los primeros cambios
Instala Git siguiendo las instrucciones para tu sistema en la documentación oficial del proyecto. Puedes comprobar la instalación en el terminal con el comando git --version. También puedes usar una interfaz gráfica o las funciones de Git de tu editor, pero el proceso básico es el mismo.
En un nuevo directorio de prueba, ejecuta:
git init
git config user.name "Juan García"
git config user.email "juan (at) example.com"
Estos ajustes del autor se aplican al repositorio actual y no sirven para iniciar sesión. Elige la dirección de correo con cuidado: los datos del autor forman parte de los commits y pueden ser visibles para otras personas cuando compartas el historial.
Crea en el editor el archivo README.md, escribe una breve descripción del proyecto y guárdalo. A continuación, ejecuta:
git status
git add README.md
git diff --staged
git commit -m "Añade la descripción del proyecto"
git log --oneline
git status muestra el estado de los archivos. git add prepara el contenido indicado para guardarlo, y git diff --staged permite revisarlo antes de crear el commit. Los dos últimos comandos guardan esa etapa del trabajo y muestran un historial abreviado.
Colaboración y limitaciones de Git
Cuando varias personas colaboran, Git puede combinar automáticamente muchos cambios independientes. Sin embargo, si dos personas modifican el mismo fragmento de forma incompatible, puede producirse un conflicto de fusión. En ese caso, hay que decidir manualmente cuál debe ser el contenido, marcar los archivos resueltos mediante git add y completar la operación. Git no determina qué versión es correcta en cuanto a su contenido.
No debes añadir al repositorio contraseñas, claves de acceso ni otros secretos. El archivo .gitignore especifica qué archivos sin seguimiento debe ignorar Git, pero no elimina los datos ya guardados en el historial. Una clave expuesta debe revocarse o sustituirse; no basta con eliminarla únicamente de la versión más reciente.
Git tampoco sustituye una copia de seguridad completa: no protege automáticamente los cambios sin guardar ni los archivos que están fuera del repositorio. Para empezar, practica creando dos commits en el directorio de prueba y compáralos con el comando git diff HEAD~1 HEAD. Verás exactamente cómo Git muestra las diferencias entre las etapas guardadas.
Consulta también: ¿Qué es AGI?
