12.4 Práctica: introducción a control de versiones

Prerrequisios:

  • Instalar R
  • Instalar RStudio
  • Instalar Git
  • Hacer una cuenta en GitHub

Vamos a enfocarnos en Git que es el sistema de control de versiones más popular.

El control de versiones es software que permite a individios, equipos u organizaciones enteras administrar su código (software también). Monitorea cambios a un proyecto para que si algo se rompe puedas comparar entre la versión actual del proyecto y una anterior. Incluso puedes retomar una versión anterior del proyecto (“checkout”). También permite trbajar en distintas “ramas” de un mismo proyecto para poder trabajar en distintas “versiones” del mismo simultáneamente. Por ejemplo un programador puede tener asignado una tarea en particular, al mismo tiempo que otro debe trabajar en otra tarea de programación. Cuando terminen, con Git y con un poco de suerte ambas se pueden integrar a la “rama” principal.

GitHub es una plataforma online que aloja proyectos de Git, esto es; proyectos de programación. Es útil cuando tienes a múltiples personas trabajando en el mismo proyecto. Por supuesto también es una excelente manera de siempre tener un respaldo de tu proyecto.

Primero crearemos un repositorio nuevo en GitHub, debemos de hacer login a nuestra cuenta de GitHub recien creada y en la esquina superior derecha (signo +) elegir la opción de crear un nuevo repositorio.

Ahora ya tenemos un repositorio creado en un servidor remoto, pero está vacío. Una manera de proseguir es trabajar algo localmente y luego subirlo ahí.

Vamos a crear un script de R, en una carpeta en nuestra computadora para después subirlo ahí.

Abramos RStudio y generemos un script cualquiera para luego guardarlo en una carpeta que estará asociado a ese repositorio remoto. Conviene que el repositorio remoto y esta carpeta se llamen igual.

Luego desde la línea de comandos de nuestra computadora debemos navegar hasta esa carpeta y llevar a cabo lo que nos indica GitHub.

Tómense 10 minutos para generar parejas y vamos a explicar una dinámica de colaboración en repositorios (Git + GitHub).