Sistema de control de versiones y Git

Introducción a los ecosistemas de código abierto.

Open Source

Los proyectos de código abierto son aquellos tipos de software cuyo código fuente está disponible para el público y es de uso gratuito. Los mantienen regularmente personas que dedican su tiempo libremente a implementar nuevas funciones o corregir errores para que los usuarios se beneficien continuamente del uso del software.

En este tutorial, veremos cómo podemos comenzar en código abierto, comenzando por aprender sobre Git y Control de versiones. Eso significa que esta pieza está dirigida a principiantes, pero los desarrolladores experimentados pueden aprender algunas cosas.

Version Control

Piense en un artista dibujando a un niño, cuando su lápiz golpea el lienzo, la obra toma forma, pero solo una obra estará disponible al final. ¿Y si, mientras pinta el artista, se produce una nueva versión en cada etapa? Después de haber dibujado la cabeza del niño, guarda esa versión colocándola en algún tipo de sistema. Ella sigue dibujando; esto crea una nueva versión. Puede optar por almacenar esta versión actualizada por separado, una copia diferente que es una extensión de la versión anterior que guardó, de modo que ahora tiene dos versiones disponibles, la versión recién actualizada también tendrá lo que ha hecho anteriormente.

Mientras trabaja en el dibujo, llega un segundo artista y pide que le ayude a dibujar la mano derecha del niño. Saca la segunda versión y trabaja en ella, sin hacer ningún cambio directo al trabajo actual que está haciendo el primer artista. Al final, tres artistas en total contribuyeron a la pintura, y hay 20 versiones disponibles, esto incluye la versión completa con la posibilidad de que regresen a una versión anterior y hagan algo completamente nuevo con ella.

Esto es similar a cómo funciona el control de versiones. Es un sistema que hace posible que los desarrolladores administren la contribución al software como un equipo. En nuestro ejemplo, si hacemos un tipo especial de lienzo que genera y guarda las versiones de las imágenes dibujadas, ese sistema será una especie de sistema de control de versiones orientado a ayudar a los artistas a gestionar su contribución a la creación de arte.

Este sistema de control de versiones (que también se llama VCS) debería poder mostrar diferencias entre las versiones del trabajo creado y detectar escenarios en los que habrá choques (o conflictos) entre una versión antigua y una nueva. Por ejemplo, si un artista trabaja en el brazo y otras obras en la mano, estas dos partes deberían poder encajar perfectamente como si estuvieran juntas. En los casos en que esto no suceda, se debe detectar la diferencia y alertar a los artistas al respecto.

Este sistema de control de versiones gestionará el trabajo gestionado por;

Git

ir es un moderno sistema de control de versiones que se utiliza popularmente para el desarrollo de software. Le brinda todos los beneficios que puede obtener al usar un sistema de control de versiones, junto con otros adicionales que hacen posible la contribución al código abierto.

Al usar git, todos los desarrolladores que trabajen en un sistema podrán tener una copia del software en su máquina local. Este es el resultado de git es un sistema de control de versiones distribuido.

Si aún no tiene git instalado en su máquina, puede seguir las instrucciones a continuación para hacerlo.

Instalación de Git

Para hacer uso de git, debe tenerlo instalado en su máquina local. Para el propósito de este tutorial, cubriremos su instalación en Linux (Ubuntu), Mac y Windows.

Para estar seguro de que aún no tiene git instalado, ejecute este comando desde su terminal.

git --version

Si recibe un error que dice que no se puede encontrar el comando, puede proceder a instalarlo según el sistema operativo que utilice.

Ubuntu

Mientras está en su terminal, ejecute los siguientes comandos:

sudo apt install git

Mac

Comencemos con la instalación de brew, un administrador de paquetes que facilita la instalación y compilación de paquetes.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Windows

Puede descargar la versión oficial de Git para Windows desde aquí.

El siguiente paso es configurar git con nuestros detalles. Mientras lo hacemos, también avanzaremos para trabajar con nuestra cuenta de Github, este es el momento perfecto para hablar sobre Github.

Github

Volvamos al sistema de control de versiones imaginario que queríamos construir para los artistas.

Recuerde cómo dijimos que git es un tipo de sistema de control de versiones. Si bien el sistema de control de versiones ayudará a los artistas a colaborar juntos, en algún momento, necesitarán alguna forma de almacenar los diferentes trabajos que han realizado. Si bien cada proyecto será administrado por un sistema de control de versiones, será genial si hay una manera de mantener (almacenar) los trabajos terminados. Ahí es donde entra Github.

Piense en ello como un archivador que guardará los diferentes proyectos en algo que podemos atribuir como armarios. Entonces, el niño que los artistas estaban dibujando se guardará en un gabinete y será administrado por git. Cuando inicien otro proyecto, este se almacenará en un gabinete diferente y también lo administrará git. Cada uno de estos proyectos será independiente de cómo git los gestione.

En el desarrollo de software, no los llamamos gabinetes; los llamamos repositorios.

Github es un servicio de alojamiento en la nube donde se almacenan estos proyectos. Para crear una cuenta de GitHub, debes ir al página de registro Para crear una cuenta.

No profundizaremos en los diferentes aspectos de GitHub en esta pieza, cree la cuenta y confirme su dirección de correo electrónico, luego regrese aquí cuando haya terminado.

Configurando Git

Para comenzar a hacer uso de git, debemos configurarlo con nuestros detalles. Uno de los beneficios que conlleva el uso de git es que, además de realizar un seguimiento de los cambios que se realizaron a lo largo del tiempo, también rastrea quién realizó el cambio.

Para que esto suceda, debe configurarse con sus datos. Para hacer eso, necesita abrir su terminal.

git config --global color.ui true git config --global user.name "YOUR NAME" git config --global user.email "[email protected]"

El primero establece el color de la interfaz de usuario para la salida de git en verdadero, mientras que los otros establecen el nombre y el correo electrónico del usuario, que es usted. Por lo tanto, debe ingresar su nombre y dirección de correo electrónico entre las comillas. Le sugiero que utilice el nombre de usuario que utilizó para crear su cuenta de GitHub.

A continuación, generemos una clave SSH.

Las claves SSH se utilizan para la autenticación e incluyen un par de claves públicas y privadas. Donde una clave (la clave pública) se usa para encriptar un mensaje y la otra se usa para desencriptar el mensaje. Si bien también puede iniciar sesión en su cuenta de GitHub con su nombre de usuario y contraseña, otra forma en que GitHub autentica a los usuarios es mediante el uso de claves SSH.

Para generar uno, debe ingresar el siguiente comando:

ssh-keygen -t rsa -C "[email protected]"

Recuerde hacer uso de su dirección de correo electrónico. Se le pedirá una ubicación para guardar la clave; puede elegir el predeterminado presionando la tecla Intro. También se le pedirá una frase de contraseña opcional para hacer que la clave sea segura, y puede omitirla si lo desea. Al final, se generará la clave.

A continuación, deberá copiar la clave generada; puede obtener la clave ejecutando este comando

cat ~/.ssh/id_rsa.pub

Cópialo y haz clic aquí, luego haga clic en el botón Nueva clave SSH, pegue la clave que copió, ingrese un título y guárdelo. Para el título, puede optar por la máquina que utiliza actualmente. Ejemplo; Macbook Pro.

Para confirmar que funcionó, vaya a su terminal e ingrese este comando,

ssh -T [email protected]

Debería dar una respuesta como esta.

¡Hola kinsomicrote! Se ha autenticado correctamente, pero GitHub no proporciona acceso de shell.

Conclusión

Ahora ya sabe qué es un proyecto de código abierto y cómo el control de versiones y git encajan en la imagen. Recuerde que git es un tipo de sistema de control de versiones, que es un sistema que hace posible que los desarrolladores contribuyan con código a un proyecto, luego el proyecto se puede alojar en una plataforma de alojamiento en la nube como GitHub.

Con este conocimiento, el siguiente paso será aprender a usar git para administrar su proyecto.