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. Pero 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 de un proyecto y el historial de los cambios realizados. Puede estar en un servidor remoto como 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 (master 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:

  • Flujos de trabajo con Git

    Un vistazo a los flujos de trabajo más conocidos para trabajar en un proyecto administrado por Git con indicaciones para elegir el más adecuado según las características del equipo y del propio proyecto.

  • Validar nuevo código

    Desarrolladores propios o independientes pueden incorporar nuevo código a un proyecto solicitando al resto de integrantes del mismo la validación de una rama con una nueva funcionalidad o la corrección de un error.

Última revisión: 12/12/2020

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *