Git es una herramienta esencial para cualquier desarrollador ya que permite llevar un registro de todos los cambios realizados en el código, trabajar en equipo y tener un control de las versiones de un proyecto.
En este momento comienza tu camino en este apasionante mundo, donde aprenderás los conceptos básicos de Git, como: crear un repositorio, hacer commit, crear ramas y hacer merge. También aprenderás a utilizar Git en conjunto con plataformas en línea como GitHub y GitLab, no te preocupes si no comprendes todavía los conceptos mencionados, durante este tema y temas subsecuentes tocaremos de manera práctica cada aspecto de forma simple y dinámica.
¡Bienvenido!
¿Qué es Git?
Git es un sistema de control de versiones que funciona de manera distribuida, lo que significa que cada copia del proyecto forma un repositorio completo en cada computadora. Esto permite trabajar de forma independiente y remota con facilidad. Los desarrolladores hacen cambios localmente y luego sincronizan su copia con el servidor. Esto es diferente al control de versiones centralizado, donde los cambios deben ser hechos en un servidor específico antes de crear nuevas versiones (Microsoft, 2022).
Git es una excelente opción para cualquier equipo debido a su flexibilidad y popularidad. Muchos desarrolladores y estudiantes universitarios ya saben cómo usarlo. La comunidad de usuarios ha creado recursos para enseñar a otros y la popularidad de Git hace fácil encontrar ayuda cuando sea necesario. La mayoría de los entornos de desarrollo tienen compatibilidad con Git y las herramientas de línea de comandos están disponibles en los sistemas operativos principales.
¿Qué son los sistemas de control de versiones centralizados (CVCS)?
Los sistemas de control de versiones centralizados permiten manejar cada versión en las que todos los cambios deben ser registrados dentro de un repositorio centralizado, que es el único lugar donde se almacenan y administran las versiones del código. Los desarrolladores trabajan con una copia local del depósito y deben sincronizar sus cambios con el almacén central antes de crear nuevas versiones (Unity Technologies, s.f.).
Estos sistemas requieren una conexión constante a internet para que los desarrolladores puedan realizar operaciones de lectura y escritura. El repositorio central es el único lugar donde se almacenan las versiones del código y tiene un control estricto sobre quién tiene acceso a él y cómo se maneja el código.
Algunos ejemplos de sistemas de control de versiones centralizados son:
Es importante mencionar que hay otros sistemas de control de versiones centralizados que no están mencionados en esta lista, pero la mayoría de ellos ya no son utilizados debido a la popularidad de sistemas de control de versiones distribuidos como Git, Mercurial, entre otros.
¿Qué son los sistemas de control de versiones distribuidos (DVCS)?
Los sistemas de control de versiones distribuidos son sistemas de control de versiones en los cuales cada copia del repositorio es un depósito completo, esto quiere decir que cada copia del repositorio contiene toda la historia del proyecto. Los desarrolladores pueden trabajar de forma independiente o remota y sincronizar sus cambios con otras copias del almacén cuando estén listos (Unity Technologies, s.f.).
Los desarrolladores pueden hacer commit, crear ramas y fusionar cambios en su copia del repositorio sin necesidad de conectarse a un servidor central. Esto significa que los desarrolladores pueden trabajar sin conexión o con conexiones inestables. También pueden resolver conflictos de manera más fácil y rápida.
Algunos ejemplos de sistemas de control de versiones distribuidos son:
Es importante mencionar que hay muchos otros sistemas de control de versiones distribuidos disponibles, algunos de los cuales son menos conocidos, pero que pueden ser adecuados para ciertos proyectos o equipos.
La historia de Git
En el año 2005 Linus Torvalds, el creador del sistema operativo Linux, desarrolló Git, el sistema de control de versiones distribuido, para manejar el código fuente de Linux. Antes de Git, el proyecto Linux utilizaba un sistema de control de versiones centralizado llamado BitKeeper, pero después de una disputa con los desarrolladores de BitKeeper, Torvalds decidió crear un sistema de control de versiones propio.
Git se lanzó al público el mismo año de su creación y rápidamente ganó popularidad entre los desarrolladores de software. A medida que más y más desarrolladores comenzaron a usar Git, se crearon una gran cantidad de herramientas y servicios para trabajar con él, como GitHub y GitLab.
Hoy en día, Git se ha convertido uno de los más populares sistemas de control de versiones para el desarrollo de software y se usa en una amplia variedad de proyectos, ya sean personales de software de código abierto o incluso comerciales de gran envergadura.
Fundamentos de Git
Para comprender Git, hay que identificar los siguientes conceptos:
Línea de Comandos
La línea de comandos de Git es una interfaz de línea de comandos (CLI) que permite interactuar con el sistema de control de versiones Git. A través de comandos de Git, los usuarios pueden realizar tareas comunes como crear y administrar repositorios, agregar y controlar cambios en los archivos, colaborar con otros desarrolladores, crear y fusionar ramas, entre otras.
La línea de comandos de Git es una herramienta muy poderosa, ya que permite realizar tareas avanzadas y proporciona un gran control sobre el sistema de control de versiones. Sin embargo, también puede ser un poco difícil de aprender al principio si no se tiene experiencia con la línea de comandos.
Algunos ejemplos de comandos de Git son:
El listado de comandos completo puedes obtenerlo en la línea de comandos de Git, mediante el comando git help.
¿Cómo funciona el núcleo de Git?
El núcleo de Git se compone de tres secciones principales: el área de trabajo, el área de preparación y el área de almacenamiento.
Instalación de Git
Git es compatible con la mayoría de los sistemas operativos populares, incluyendo:
En Windows, Git puede ser ejecutado en una ventana de comandos o mediante una interfaz gráfica de usuario, como Git Bash o Git GUI. En Linux y macOS, Git se ejecuta principalmente en una terminal (Atlassian, s.f.).
Además de los sistemas operativos de escritorio, Git también está disponible en sistemas operativos móviles y en plataformas en la nube, como GitHub, GitLab, Bitbucket, entre otros. Esto permite a los desarrolladores trabajar en sus proyectos desde cualquier lugar y desde cualquier dispositivo. A continuación, exploraras los pasos para instalar Git en cada sistema operativo:
Instalación en GNU/Linux. La gran mayoría de distribuciones actuales de Linux ya traen Git por defecto. La forma de verificar o instalar Git es la siguiente:
Instalación en Mac. A diferencia de Linux, en Mac no viene por defecto instalado Git, pero su instalación puede ser igual de simple; para instalar Git en Mac sigue los siguientes pasos:
Una forma fácil de instalar Git en Mac es mediante el uso de un administrador de paquetes como Homebrew. Para instalar Homebrew, abre la terminal y ejecuta el siguiente comando: /bin/bash -c “$(curl –fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh
Instalación en Windows. A diferencia de Linux y Mac que hacen uso de la línea de comandos, la instalación en Windows es mediante una interfaz gráfica que facilita la instalación a la mayoría de los usuarios; para instalar Git, realiza los siguientes pasos:
Software Freedom Conservancy. (s.f.). Downloads. Recuperado de https://git-scm.com/downloads
El uso y descarga del software deberá apegarse a los términos y condiciones del sitio oficial del fabricante y su uso será responsabilidad de quien lo descargue. Tecmilenio no tiene licencia ni posee los derechos sobre dicho software.
Configurar Git
Existen varias configuraciones que se pueden realizar en Git, aquí se describen algunas de las más comunes:
Configuraciones:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Estas son solo algunas de las configuraciones más comunes, pero hay muchas más opciones disponibles. Puedes verificar todas las configuraciones disponibles usando el comando git config –help.
Es importante mencionar que las configuraciones se pueden realizar tanto a nivel global como a nivel local, para configuraciones específicas.
Inicializando nuestro primer repositorio en un directorio existente
Para inicializar un repositorio Git en un directorio específico, sigue estos pasos (Atlassian, s.f.):
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Iniciar un repositorio:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Clonando un repositorio existente
El clonado de un repositorio en Git es el proceso de crear una copia exacta de un repositorio existente en otra ubicación. El proceso de clonado se realiza mediante el uso del comando git clone, el cual permite crear una copia completa del repositorio, incluyendo todo su historial de commits, ramas y etiquetas. La copia resultante es un repositorio independiente y totalmente funcional, con su propia historia y capacidad para aceptar commits y crear ramas.
Una vez clonado el repositorio, se puede trabajar en la copia localmente y hacer commits y ramas sin afectar al repositorio original. También puede optar por sincronizar sus cambios con el repositorio original mediante el uso de comandos como git push y git pull.
Para clonar un repositorio existente en Git, sigue estos pasos:
Clonar un repositorio:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para
fines educativos.
Es importante mencionar que el clonado de un repositorio es útil cuando se trabaja en equipos, ya que cada miembro del equipo puede tener su propia copia del repositorio y trabajar en ella de manera independiente, y luego fusionar sus cambios en una sola versión.
Ojalá hayas disfrutado aprendiendo los fundamentos de Git, y que ahora tengas una mejor comprensión de cómo funciona este sistema de control de versiones. Ya sea que pienses trabajar en un proyecto individual o en equipo, Git te permitirá manejar tus cambios de manera eficiente y organizada.
Recuerda que a medida que vayas trabajando con Git, siempre puedes volver a estos fundamentos para refrescar tus conocimientos y seguir mejorando tu fluidez con el sistema. Asimismo, si tienes alguna duda o problema, no dudes en buscar ayuda, en la comunidad de Git hay mucha información y recursos disponibles.
Asegúrate de:
Los siguientes enlaces son externos a la Universidad Tecmilenio, al acceder a ellos considera que debes apegarte a sus términos y condiciones.
Lecturas
Para conocer más acerca de fundamentos de Git, te sugerimos revisar lo siguiente:
Videos
Para conocer más acerca de fundamentos de Git, te sugerimos revisar lo siguiente: