Cómo vincular y usar Git con RStudio

Si trabajas como Data Scientist necesitas saber qué es Git y trabajar con ello. Si no sabes qué es Git y cómo puedes vincularlo con RStudio para usarlo en tus proyectos, no te preocupes, en este post te lo explico.

Qué es Git y por qué debes usarlo

Git es un servicio gratuito de control de versiones. Básicamente, permite albergar tu código y controlar el código que vas subiendo, chivándote los posibles conflictos y permitiéndote volver a una copia anterior cuando quieras. Git, es software libre y en base a ello existen varios servicios, siendo Github y Gitlab los más comunes.

Ya sabes qué es Git, pero, ¿por qué deberías usarlo? Seguramente alguna vez te habrás encontrado con: muchas versiones de un mismo código, dificultades para trabajar en equipo bajo los mismos ficheros de forma sencilla, incapacidad de recuperar código que modificaste más adelante o problemas a la hora de cambiar de ordenador. Si ese es tu caso, seguro que ese problema te llevó mucho tiempo resolverlo. Tiempo que, no nos sobra, no es útil y, además, podría haberse evitado usando Git.

Por otro lado, Git además de servir para poder trabajar de forma más eficiente sirve para más cosas. De hecho, la puesta en producción contínua de los algoritmos de Machine Learning, se suele hacer con las herramientas de CI/CD que ofrecen las herramientas basadas en Git como Github y Gitlba.

En definitiva, si trabajas como Data Scientist necesitas usar Git para que tu trabajo sea mucho más fácil. Por suerte, si usas RStudio, este se puede integrar con Git para que resulte aún más fácil. Así pues, ¡veámos cómo integrar Git con RStudio!

Cómo conectar Git con RStudio

Existen diferentes formas de conectar servicios Git con Rstudio, pero la más fiable y práctica, en mi opinión, es hacerlo mediante una contraseña SSH.

Este sistema consiste en crear una clave en tu ordenador que introduciremos en nuestra cuenta de Github/Gitlab. De esta forma, nos podremos conectar a nuestro servicio Git sin tener que usar usuario y contraseña.

Así pues, los pasos que tendremos que seguir para conectar Git con RStudio, ya sea en Mac o en Windows, son:

  • Crear una contraseña SSH en Mac o Windows.
  • Incluir nuestra contraseña SSH en Github o Gitlab.
  • Crear una repo en Github o Gitlab.
  • Conectar la repo a nuestro RStudio.

Como ves, es algo muy sencillo, así que vayamos por partes.

1. Cómo crear una contraseña SSH

Cómo crear una contraseña SSH en Windows

Para crear una clave SSH en Windows primero debemos asegurarnos de que el Cliente OpenSSH está instalado en Windows. Para ello, comprobarlo, debemos ir a Configuración –> Aplicaciones y hacer clic en «Aplicaciones y Características», tal como aparece en la imagen.

Crear SSH en Windows - Configurar Cliente Open SSH

Ahí deberemos buscan Cliente OpenSSH. Si aparece, perfecto. Sino, simplemente tendrás que agregarlo, haciendo clic en el botón «Agregar una característica».

Una vez ya tienes el Cliente OpenSSH instalado, deberemos abrir la terminal e introducir el comando ssh-keygen. Al hacerlo, nos pedirá que introduzcamos una carpeta, aunque pulsando el enter se creará en la carpeta por defecto.

Tras ello, nos pedirá que incluyamos un passphrase, es decir, una contraseña. Una vez más, si damos la enter no se incluirá contraseña (aunque no recomiendo hacerlo). Tras esto, nos aparecerá algo así en la pantalla:

Crear Keygen en Windows

Esto significa que ya se ha creado nuestra clave SSH. Ahora, para compiarla simplemente deberemos ir a la ruta en la que lo hemos creado y abrir el fichero con un editor de texto como Sublime Text.

Nota: para que aparezcan los ficheros debes activar la visualización de ficheros ocultos. Puedes aprender cómo hacerlo aquí.

Otra opción para visualizar la clave es introducir el siguiente comando en la terminal:

clip < ~/.ssh/id_rsa.pub

Con esto ya tendremos nuestra clave SSH creada y copiada, así que ya podemos incluirla en nuestro SSH para vincular nuestro servicio Git con RStudio.

Cómo crear una contraseña SSH en Mac

Para crear un SSH Keygen en Mac simplemente debemos abrir la terminal y escribir el siguiente comando:

ssh-keygen -t rsa

Al hacer esto el ordenador empezará a crear el Keygen. Al terminar, nos pedirá indicar la localización donde queramos guardar nuestro keygen. Si queremos guardarlo en la localización por defecto simplemente tendrás que pulsar el enter. Al igual que en Windows, tras indicar la localización del Keygen, nos indicará si queremos crear un passphrase, es decir, una contraseña. Una vez más, si no quieres una contraseña solo tienes que pulsar enter, aunque te recomendaría que la incluyeras. Una vez hecho esto ya se habrá generado el keygen, como se muestra en la siguiente imagen:

Cómo crear SSH en Mac

Por último, para copiar la Keygen al portapapeles, deberás ejecutar el siguiente código:

pbcopy <- ~/.ssh/id_rsa.pub

Listo! Ya has creado tu keygen SSH y la has copiado al portapapeles. Ahora veamos cómo podemos vincular RStudio con Github, para lo cual necesitaremos incluir nuestro SSH en nuestro servicio Git. Veamos cómo se hace.

2. Incluir contraseña SSH en Github o Gitlab

Ahora que ya tenemos nuestra contraseña SSH creada en nuestro ordenador, deberemos incluirla en Github o Gitlab para que se pueda hacer la autentificación sin que tengamos que hacer nada. En ambos casos el proceso es parecido, aunque lo explico por separado.

Cómo incluir SSH Key en Github

Para incluir el SSH Key en Github debemos ir al apartado «SSH and GPG Keys» dentro de los ajustes de la cuenta. Ahí encontraremos un botón con el que podremos incluir un SSH Key, indicando un título y el Key, como aparece a continuación:

Cómo añadir SSH en Github

En el caso de Github, a diferencia de Gitlab, no se puede establecer una fecha de expiración de la Key. Sin embargo, si la clave SSH no se ha usado por un periodo de un año, Github automáticamente la elimina. En cualquier caso, en su documentación de Github recomiendan siempre revisar el listado de Keys SSH recurrentemente.

Cómo incluir SSH Key en Gitlab

En el caso de Gitlab deberemos ir al apartado SSH Keys dentro de Preferencias (en el desplegable de tu perfil). Ahí tendremos una ventana como la siguiente:

Cómo añadir SSH en Gitlab

Así pues, simplemente deberemos incluir el Key SSH y darle un título para poder identificarla. Además, también se puede incluir una fecha de expiración del SSH key. Aunque esto último es opcional, es recomendable hacerlo.

3. Crear un repositorio en Github / Gitlab

Ahora que ya hemos incluido la clave SSH tenemos que crear el repositorio donde iremos subiendo los archivos y trabajando de forma conjunta. Crear un repositorio en Github es muy sencillo, simplemente tenemos que ir a la sección repositorios y darle a añadir. En Gitlab también es muy sencillo, aunque en este caso no se llama respositorio, sino proyecto.

En ambos casos nos saldrá una pantalla similar a esta:

Cómo crear Repo en Github

Además, ambos dan la opción de crear un fichero README.md. Personalmente recomiendo siempre crear los repositorios incluyendo este archivo. De esta forma estará claro desde el primer momento cuál es el objetivo del respositorio. Además, facilitará mucho el primer commit que hagamos.

En cualquier caso, ahora que ya tenemos nuestro repositorio creado, sigamos viendo cómo usar Git en RStudio.

4. Conectar nuestro repositorio Git con RStudio

Una vez hemos creado nuestro repositorio en Github o Gitlab, conectarnos con RStudio es muy sencillo. Para ello simplemente hay que crear un nuevo proyecto y elegir «Version Control», como en la imagen:

Cómo crear un proyecto  vinculado con Git en RStudio

Cuando hagamos esto, se abrirá un nueva ventana donde tendremos que indicar la URL del repositorio al que nos queremos conectar. Esta URL debe ser la URL para conexión SSH, que es diferente a la URL normal del repositorio.

En el caso de Github, el SSH del repositorio es git@github.com:nombre_cuenta/nombre_repositorio.git , mientras que en el caso de Gitlab es: git@gitlab.domino.com:grupo/respositorio.git.

Cómo conectar un proyecto con un repositorio en Github en RStudio

Al darle a «Create Project» el proyecto copiará lo que tengas en Gitlab. Además, podrás hacer Commits, Push y Pulls dentro del mismo RStUdio. Veamos cómo funciona.

Cómo usar Git en RStudio

Básicamente, cuando trabajamos con Git en RStudio, nosotros trabajamos en nuestro ordenador, pero podemos en cualquier momento subir o bajar los datos del Git o, incluso, restaurar versiones anteriores. Las principales acciones que podemos realizar tras vincular Git con RStudio son:

  • Commit: guarda los cambios en el repositorio en local.
  • Push: sube los datos del respositorio en local al respositorio remoto. Para asegurarte de que incluyes los últimos cambios, generalmente suele ir siempre precedido de un commit.
  • Pull: permite bajar el repositorio remoto al entorno de trabajo.
  • Diff: permite comprobar las diferencias entre el índice de staging y nuestro entorno de trabajo.

Todo esto se puede ver de forma resumida en la siguiente imagen:

Todas estas operaciones las podrás realizar tanto desde terminal como desde la propia interfaz de RStudio. Y es que, si te fijas, la interfaz de RStudio ahora muestra un nuevo botón en la barra superior. Clicando en él, se desplegarán todas la opciones que puedes hacer con Git desde la propia interfaz de RStudio:

Git commands RStudio

Conclusiones

Sin duda alguna, empezar a usar Git te será muy útil y te evitará muchos dolores de cabeza con problemas de versiones, trabajo en equipo, cambios de ordenador, etc. Además, poder integrar Git en RStudio permite un flujo de trabajo mucho más sencillo y hace que usar Git sea muy fácil.

Como siempre, espero que te haya gustado el post. Si es así, suscríbete para estar al tanto del resto de posts. En cualquier caso, ¡nos vemos en la próxima!