Paso a paso: Uso Inicial de Git, GitHub con RStudio (transparencias)

Pedro L. Luque

2024-09-05

Introducción

  • Revisar las versiones instaladas de R (“4.x.x” en adelante) y RStudio (“202x.x.x”)

  • ¿Qué es el control de versiones?

    • El uso de Git y GitHub junto con RStudio puede mejorar mucho la forma en la que se trabaja con R. Facilita la colaboración en el desarrollo de código en el lenguaje R o cualquier otro. Pero configurar todo puede ser un desafío.

      1. Git es un software de código abierto para el control de versiones. Utilizando Git, puedes hacer cosas como ver todas las versiones anteriores de código que has creado en un proyecto.

      2. GitHub es el servicio más popular para colaborar en código usando Git. Otros servicios conocidos son: GitLab y BitBucket.

    • Es posible usar Git sin usar GitHub, aunque la mayoría combina los dos. Poder tener un registro de todos los cambios que ha realizado en su código tanto localmente como en un sitio web remoto es muy conveniente.

    • Algunos ejemplos: Repositorio: “calote/TDecisionCodigo” y Repositorio: “rstudio/rstudio”.

¿Por qué se debería usar Git y GitHub?

Hay tres motivaciones principales para adoptar un flujo de trabajo con Git y GitHub:

  1. El uso de Git y GitHub sirve como copia de seguridad. Debido a que GitHub tiene una copia de todo el código que tiene localmente, si algo le pasara a su ordenador, todavía tendría acceso a su código.

  2. El uso de Git y GitHub te permite usar el control de versiones. ¿Alguna vez has tenido documentos llamados report-final.pdf, report-final-v2.pdf y report-final-v3.pdf? Sí, sí, lo has hecho. En lugar de hacer copias de archivos por miedo a perder trabajo, el control de versiones le permite ver lo que hizo en el pasado, todo mientras mantiene versiones individuales de los documentos.

  3. El uso de Git y GitHub permite trabajar en el mismo proyecto al mismo tiempo que los colaboradores. Muchos equipos que están trabajando con R deciden cambiar a Git/GitHub después de colaborar usando Dropbox, Google Drive, OneDrive o similares (el problema con el que se encuentran es que solo una persona puede trabajar en un proyecto de RStudio compartido de esta manera). Git y GitHub tienen herramientas integradas que permiten el trabajo simultáneo o asíncrono, un beneficio importante para aquellos que trabajan en equipo.

Uso de Git en RStudio (1/3)

  • Instalación de Git

  • Configuración de RStudio para uso con Git

    • Acceder a Opciones Generales de RStudio en el apartado: Git y definirlas
    • En Terminal de RStudio comprobar: git --version
  • Creación de un Proyecto RStudio con control de versiones

    • Crear un nuevo Proyecto (nuevo directorio o directorio existente)
    • Y activar el uso de Git (Activar: “Create a git repository”)
      • Otro modo es en la consola de R: usethis::use_git().

Uso de Git en RStudio (2/3)

  • Pasos para el primer Commit

    • Configuración del email y username (al hacer el primer commit)
      • Uso del Terminal de RStudio, ejecutando las siguientes dos instrucciones (modificando el “name” y el “email” del usuario):

        git config --global user.name "calote"
        git config --global user.email pedro.luis.luque@gmail.com
      • Hacerlo con el paquete “usethis”: usethis::edit_git_config()

        # fichero: ~/.gitconfig
        [user]
            name = calote
            email = pedro.luis.luque@gmail.com
    • Crear varios documentos: un Rmd y un fichero R
    • En la pestaña “Git de RStudio” seleccionar ficheros y hacer commit, poniendo mensaje adecuado.

Uso de Git en RStudio (3/3)

  • Hacer nuevos cambios y hacer varios Commit.

  • Ver la Historia de los cambios (en la pestaña Git).

    • Cómo se ven las diferencias entre versiones: en verde y rojo.
    • Cómo ver el contenido de ficheros en versiones anteriores.
  • Cómo volver en un fichero a un estado anterior (revertir los cambios).

  • Mostrar la carpeta oculta asociada a Git (.git) que contiene toda la información desde el panel RStudio-File.

Uso de GitHub con RStudio

  • Crear una cuenta en GitHub (desde el enlace https://github.com/signup?source=login)

    • Cuenta Free y de estudiante (sin ninguna opción marcada inicialmente)
    • Guardar bien el usuario, email utilizado y la contraseña.
    • Visitar la página de GitHub y permanecer conectado usando las credenciales definidas (“Sign in” en https://github.com)
  • Configurar nuestro ordenador para que RStudio y GitHub se reconozcan y puedan sincronizarse con ayuda de “Tokens”.

    • Definir un Token en GitHub desde RStudio con usethis::create_github_token() y copiarlo en el portapapeles.
    • Almacenar el token en nuestro ordenador con ayuda del paquete “gitcreds”: gitcreds::gitcreds_set()

Crear un nuevo repositorio desde un proyecto RStudio

  • En la consola de R en RStudio del proyecto abierto ejecutar: usethis::use_github() para crear el nuevo repositorio en GitHub.

  • Se podrá ver que nuestro proyecto RStudio se ha subido a “GitHub” como nuevo repositorio (el nombre del repositorio será el de la carpeta del proyecto).

Crear un nuevo proyecto RStudio desde un repositorio en GitHub

  • En GitHub, crear un nuevo repositorio al pulsar el botón “Create repository” (este paso no sería necesario si ya se tiene creado el repositorio a descargar).

  • En GitHub, en el botón “Code” del repositorio que se quiere usar en RStudio copiar la “url” que aparece en primer lugar.

  • En RStudio seleccionamos crear “New project”, elegimos “Version Control” y luego seleccionamos “Git”.

  • Introducimos en el primer cuadro de texto la url copiada anteriormente.

  • Pulsamos “Create Project”.

  • A continuación podrá consultarse la pestaña “Git” y ver la información asociada al repositorio descargado.

Flujo de Trabajo habitual: Push (subir a GitHub)

  • “Push”, “subir” o “empujar” significa enviar cualquier cambio en su código desde RStudio a GitHub. Para hacer esto, primero tenemos que confirmar los cambios. Después de confirmarlos, tenemos un botón (la flecha hacia arriba) en RStudio que podemos usar para enviar nuestro código a GitHub.

  • En RStudio:

    • Creamos un nuevo fichero de script R o un fichero Rmd y lo grabamos.
    • Se pulsa en la pestaña “Git” sobre el botón de “commit”.
    • Marcamos todos los ficheros sobre los checks de “Staged”, rellenamos la descripción del commit y pulsamos sobre el botón de “commit”.
    • Después de hacer el commit, pulsamos sobre el botón “Push” para subir los cambios a GitHub.
    • A continuación puede comprobarse en la página de GitHub del repositorio que se han actualizado los últimos ficheros considerados en el último commit.

Flujo de Trabajo habitual: Pull (descargar desde GitHub)

  • “Pull”, “descargar” o “bajar” desde GitHub a RStudio local. Utilizando el botón de “flecha hacia abajo”, RStudio va al repositorio de GitHub, toma el código más reciente y lo lleva a su RStudio local.

  • Pulsar “Bajar-Pull” regularmente es extremadamente importante si estás colaborando, aunque si eres el único que trabaja en un proyecto de RStudio y un repositorio GitHub asociado, sabrás generalmente si tu código local coincide con lo que está en GitHub, por lo que es menos importante.

  • En la página de GitHub de nuestro repositorio:

    • Editamos uno de los ficheros de nuestro repositorio pulsando sobre el icono de un lápiz (a la derecha).
    • Realizamos alguna modificación sobre el fichero (o ficheros).
    • Pulsamos en la parte inferior de la página en el botón de “Commit changes” (rellenando los comentarios que creamos oportunos sobre el commit que se está realizando).
    • Se puede navegar por la página de GitHub para consultar todos los commits realizados (y mucha más información).
  • Volvemos a RStudio:

    • En la pestaña “Git” pulsamos sobre el botón de la flecha que apunta hacia abajo (verde) para realizar un “Pull” o descarga de los cambios en GitHub a nuestro proyecto local en RStudio.
    • Después de eso puede comprobarse que los ficheros locales de nuestro proyecto se han actualizado con los cambios que se han producido en el repositorio.

Uso de RStudio y GitHub con Proyectos de Colaboración