Git es un sistema de control de versiones de código abierto que mantiene el historial de los cambios realizados en los ficheros de un proyecto y la capacidad de navegar por el mismo en cualquier momento.
Características
Los sistemas de control de versiones como Git permiten a usuarios y equipos:
- Crear versiones de un proyecto.
- Realizar el seguimiento de los cambios y resolver conflictos.
- Fusionar cambios de varias fuentes en una versión común.
- Deshacer cambios en archivos seleccionados o en un proyecto completo.
- Acceder a versiones históricas de un proyecto para comparar los cambios a lo largo del tiempo.
- Ver quién modificó por última vez algo que podría estar causando un problema.
- Crear una copia de seguridad segura de un proyecto.
- Use múltiples máquinas para trabajar en un proyecto y mucho más.
Instalación
Sólo hay que descargar e instalar Git. Aunque en Windows:
- Se puede instalar con Chocolatey, basta ejecutar como administrador
cinst -y git
. - Para usar enlaces simbólicos en la estructura de archivos de los proyectos (no recomendable) seguir estas instrucciones.
- Se proporcionan tres formas de usar Git:
- Git CMD para usar Git desde línea de comandos como en el Símbolo del sistema de Windows. Útil si sólo se trabaja en Windows.
- Git Bash emula un entorno
bash
sobre Windows para usar Git y muchos de los comandos estándar de Unix. Útil para los habituados a Linux. - Git GUI proporciona una interfaz gráfica básica para usar Git sin escribir comandos, aunque hay otras alternativas donde elegir.
Conceptos básicos
Repositorio, es el directorio donde se almacenan los archivos del proyecto y el historial de los cambios realizados. Puede estar en un servidor remoto como GitHub o GitLab o en un directorio local. Puede contener archivos de código, imágenes, audios o todo lo relacionado con el proyecto.
Commit, es el conjunto de los cambios (changeset) realizados en uno o varios archivos del proyecto que se confirman en el repositorio con un mensaje descriptivo y un autor. Cada confirmación es una instantánea del proyecto que no podrá ser modificada a no ser que se indique expresamente.
Rama, es un puntero a una de las instantáneas del repositorio. Proporciona una línea independiente de desarrollo con su propia historia de commits sin alterar los archivos de otras ramas. Suelen usarse para implementar nuevas funcionalidades sin afectar a la versión estable o rama principal (main branch) del proyecto.
Conflicto, sucede cuando se fusionan dos ramas que incluyen modificaciones en los mismos trozos de un fichero y Git no es capaz de elegir cuáles aplicar, requiriendo la intervención del usuario.
HEAD, también es un puntero, apunta al último commit de la actual rama de trabajo, salvo que se haya movido expresamente a una instantánea anterior.
Etiquetas, son punteros «con nombre» que apuntan a una instantánea concreta del historial de cambios. Suelen usarse para identificar las sucesivas versiones del proyecto.
Áreas de Git
Área de trabajo, es el directorio de nuestro proyecto con el estado actual de los ficheros que podemos visualizar desde el explorador de archivos. Se inicializa con el comando init.
Área de preparación, donde añadir los archivos que van a conformar un commit. Pueden ser ficheros completos o sólo partes concretas. Los archivos se añaden con el comando add.
Repositorio local, donde guardar cada commit a partir de los archivos añadidos al área de preparación. La información se guarda por defecto en el directorio .git
del área de trabajo.
Repositorio remoto, puede ser uno (por defecto se llama origin
), o puede haber varios. Entre el repositorio local y los remotos se puede usar el comando push para enviar los cambios realizados localmente, o pull para descargar los últimos cambios disponibles.
Mis guías de uso
Estas son las guías que he ido preparando para conocer mejor esta herramienta primordial para cualquier desarrollador de software:
Referencias
- Libro completo Pro Git de Scott Chacon, también en español.
- Fundamentos de Git, del libro anterior.
- Apuntes de git de David Poza.
Última revisión: 25/11/2022
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!