Conectar RStudio y GitHub para mantener nuestros proyectos de R actualizados

Cuando estamos haciendo nuestro proyecto en RStudio, podemos estar interesados en que nuestro trabajo sea conocido por toda la comunidad. Uno de los recursos más importantes para este fin es publicar nuestro código en GitHub. Además, GitHub utiliza el software de control de versiones Git, lo que le permite llevar un historial de todos los cambios realizados en nuestro desarrollo. Como nota curiosa, Git fue desarrollado por Linus Torvalds, el inventor de Linux. Aquí es voy a mostrar cómo se puede conectar RStudio y GitHub para que nuestros desarrollos sean conocidos y podamos tener un seguimiento de los mismos.

Quiero leer...

Conectar RStudio y GitHub por primera vez

Para conectar RStudio y GitHub tenemos que seguir varios pasos, que vamos a desgranar a continuación.

Requerimientos previos

Antes que nada, tenemos que asegurarnos de tener una cuenta en GitHub y de tener instalado Git en nuestro ordenador. Como yo empleo Linux Mint, simplemente busco en Synaptic git y lo instalo. Aunque también podemos instalarlo por terminal con la siguiente línea:

sudo apt-get install git

Para instalar Git en otros sistemas operativos, os dejo el enlace de su página oficial.

Creamos un nuevo proyecto de paquete de R

Abrimos RStudio y creamos un nuevo proyecto de paquete de R, que llamaremos toothR. Si hemos instalado sin problemas Git en nuestro ordenador, en la ventana para poner el nombre del nuevo parquete de R aparecerá una opción para marcar Create a git repository.

Esto hace que se genere una nueva pestaña en la parte superior derecha de RStudio con el nombre de Git.

Creamos un repositorio local Git: Un poco de teoría

Para comprender más en detalle en qué consiste Git, merece la pena detenernos un segundo para explicar brevemente el funcionamiento de crear un repositorio git (Create a git repository).

Esta opción consiste en la generación de una colección de archivos ocultos por defecto (comienzan con un punto .) en el mismo directorio del paquete R que acabamos de crear. Estos archivos ocultos contienen un registro de los archivos y carpetas que queremos asociar al proyecto git. No tienen por qué ser todos los archivos y carpetas que guardamos en el directorio del paquete R, sino que podemos hacer una selección de los documentos que nos gustaría incluir en (commit) el repositorio de git, y finalmente compartirlo con el mundo.

Haciendo click en commit se abre una ventana en el que a la izquierda verás todos los archivos/carpetas presentes en el directorio local del paquete R. El amarillo indica que, hasta ahora, ninguno de ellos ha sido añadido a git. Ahora comprueba los archivos/carpetas que quieres incluir en el repositorio de git. Obviamente necesitamos todos archivos necesarios para el paquete. Antes de agregarlos al repositorio local de git, necesitamos introducir un comentario. Esto es un paso importante porque nos permite describir qué cambios nuevos se están introduciendo.

Para poder indicar qué archivos queremos tener sincronizados, tenemos que seleccionarlos con los ticks que están a su izquierda, y posteriormente dar a Commit.

Creamos un repositorio en GitHub para sincronizar el paquete de R

Nos olvidamos temporalmente de RStudio y nos vamos a GitHub. Una vez con nuestro usuario y contraseña, podemos crear un nuevo repositorio pinchando sobre el botón verde New.

En la zona de Repository name podemos introducir el nombre de nuestro paquete, para tenerlo siempre localizable. Además, es recomendable añadir una pequeña descripción del repositorio y de hacerlo público. Finalmente, pinchamos sobre Create repository. Esto creará un repositorio vacío.

Como nuestro paquete de R se llama toothR, vamos a llamar a nuestro repositorio con el mismo nombre. Por lo tanto la dirección sería la siguiente https://github.com/paleomariomm/toothR.

Enlazar el repositorio git local con el repositorio de GitHub

Hasta ahora hemos creado dos repositorios: uno en local con Git y RStudio, y otro en la página de GitHub. Nos falta un paso fundamental: conectar los dos repositorios para que estén plenamente sincronizados.

Para este paso esencial vamos a ir a la terminal de nuestro ordenador, accesible también desde RStudio. Ahora tenemos que lanzar varias líneas que ejecuten Git. Vamos a comenzar indicando a nuestro repositorio local dónde se encuentra el respositorio GitHub. Para ello tenemos que adaptar la siguiente línea con vuestro nombre de usuario (cambiar paleomariomm por el nombre de vuestro usuario en GitHub) y añadir al final del nobmre de vuestro paquete .git.

git remote add origin https://github.com/paleomariomm/toothR.git

De este modo nuestro repositorio local sabe dónde enviar los archivos en GitHub. Por lo tanto, los dos repositorios están conectados ya. Nos falta hacer la sincronización, esto es, enviar los archivos del local a GitHub. Para ello, tenemos que ejecutar la siguiente línea:

git push -u origin master

Usuario / contraseña de GitHub

Para configurar que la conexión de los dos repositorios sea exitosa, tenemos que indicar usuario y contraseña de GitHub. De este modo, el repositorio local podrá enviar satisfactoriamente los archivos a GitHub. Para ello tenemos que ejecutar la siguiente línea, adaptando el nombre de nuestro usuario.

git config --global user.name paleomariomm

A partir de ahora, cada vez que demos a Commit y luego Push, nos pedirá la contraseña de GitHub para poder enviar nuestros archivos.

Actualizar nuestros proyectos después de conectar RStudio y GitHub

Como es normal, nuestros proyectos pueden sufrir mejoras y actualizaciones. El hecho de conectar Rstudio y GitHub nos permite precisamente mantener actualizados nuestros proyectos también en GitHub.

Una vez que tenemos conectados RStudio con GitHub, como vimos al principio, mantener actualizadas las modificaciones en GitHub es muy sencillo.

Cuando abrimos nuestro proyecto y hacemos cambios en él, RStudio ya sabe que está conectado con GitHub y marca automáticamente qué archivos han sufrido cambios.

Modificamos un archivo de nuestro proyecto de R

Si hemos modificado, por ejemplo, algo del código de nuestro archivo toothR.R, nos indica que ese archivo ha sufrido cambios con un símbolo de M en azul (que viene del inglés Modified). Esto lo observamos en la pestaña Git, como se ve a continuación.

Subimos los cambios a GitHub

Al igual que cuando conectamos por primera vez RStudio con GitHub, tenemos que subir los cambios y actualizaciones realizados en nuestro proyecto de R:

  • Primero al servidor local,
  • y después al servidor GitHub.

Vamos a comenzar con subir los cambios a nuestro servidor local. Para ello, pinchamos sobre Commit, seleccionamos nuestro archivo modificado, y añadimos un comentario de en qué consiste la modificación.

Conectar RStudio y GitHub

Observamos en la imagen anterior que también nos indica dónde están los cambios en el archivo respecto a la versión anterior. En este caso en concreto se están eliminando las líneas 52 y 53 del código.

Volvemos a pinchar ahora sobre Commit para subirlo a nuestro servidor local. Observamos que nos hace un resumen de los cambios implementados y el comentario incluido.

Y ahora solo nos queda sincronizarlo con GitHub. Es decir, actualizar nuestro servidor GitHub. Para ello pinchamos sobre la flecha verde que pone Push.

Os pedirá ahora vuestro usuario y contraseña de GitHub. Es importante mencionar que tanto el usuario como la contraseña lo pone con asteriscos.

Finalmente indica que se ha actualizado correctamente.

remote: Support for password authentication was removed on August 13, 2021.

Desde el día 13 de agosto de 2021 la autenticación ha dejado de funcionar en favor de la creación de un token. Para poder solventarlo, os dejamos esta entrada.

1 comentario en «Conectar RStudio y GitHub para mantener nuestros proyectos de R actualizados»

  1. Muy bueno!

    A mí, no sé si tiene que ser así o es algún problema de mi máquina, me funciona bastante más rápido prescindir de la parte gráfica y usar la consola del sistema desde RStudio mismo.

    Y muy bueno haberme enterado en Telegram que lo habías publicado.

    Responder

Deja un comentario