11 Trabajar con un repositorio git en RStudio
11.1 Iniciar en RStudio el proyecto con git
Una vez que hemos bifurcado el repositorio madre (upstream) en ixplorer (o el entorno de nuestra preferencia) podemos clonarlo. Lo primero que debemos de hacer es abrir RStudio y elegir la opción File y luego seleccionamos New project, tal como se muestra en la imagen:
Nos aparecerá un recuadro en el cual debemos de elegir que queremos un proyecto de control de versiones (Version Control)
Luego elegimos que queremos usar git:
Seguidamente nos aparecerá un cuadro que nos pedirá la dirección del repositorio remoto que queremos clonar (Repository URL), el nombre del repositorio (se colocará automáticamente al indicar la dirección) y por último el directorio/carpeta donde queremos almacenarlo dentro de nuestra computadora:
11.1.1 ¿Cómo saber la dirección del repositorio remoto?
A este punto habrás de tener acceso a ixplorer (o su entorno de preferencia) y desde allí se puede buscar el repositorio con el cual se desea trabajar. Recordemos que vamos a clonar nuestra bifurcación y no el repositorio upstream
.
Para encontrar esta dirección tomaremos como ejemplo a Michelle. Ella tuvo que haber realizado en primer lugar, una bifurcación del repositorio upstream
en ixplorer. Esto se hace yendo al repositorio upstream
y dando click en el botón bifurcar que está en la esquina superior derecha, tal como se muestra en la imagen:
Al hacer click es dicha opción aparecerá una nueva pantalla que nos dice el usuario que está realizando la bifurcación, desde donde la realiza (repositorio upstream), el nombre del repositorio, la visibilidad y un recuadro para la descripción. Todo esto lo dejamos como está por defecto y unicamente damos click en el botón verde que dice Bifurcar el repositorio
Para este ejemplo, cuando Michelle hizo click en esa opción, se le abre una nueva ventana que es bastante similar a lo que veíamos como repositorio upstream. La diferencia está en que ahora tiene una indicación de que está en su bifurcación, la cual vemos en la esquina superior derecha y dice michelle / mod_credit_risk Debajo vemos que además se menciona desde cuál repositorio se realizó la bifurcación, en este caso fue desde credit_risk/mod_credit_risk
Nosotros tenemos que validar esto, que aparezca nuestro nombre de usuario seguido del nombre del repositorio. Si es así, buscamos la dirección que debemos de llevar a RStudio para finalizar el proceso de clonar. Notar que esa dirección lleva el nombre del usuario michelle.
Si bien tenemos dos opciones de dirección a elegir (HTTPS & SSH), preferiblemente debemos seleccionar HTTPS.
Ya que tenemos la dirección copiada, regresamos a RStudio, la pegamos en el cuadro y damos click en el botón Create Project
Ya con esos pasos tendremos en el computador el repositorio donde podremos realizar nuestro trabajo. Para corroborar que todo está bien configurado, deberíamos de ser capaces de ver la pestaña de git:
11.2 Crear una rama con la interfaz de RStudio
Parte del flujo de trabajo es que nunca realicemos cambios en la rama master de nuestro proyecto. Todo trabajo y cambios que vayamos a realizar en el proyecto los vamos a generar en una rama.
Antes de crear una rama debemos de tener asignado un tiquete (issue) que describe la tarea a realizar. Puede ocurrir que un miembro del equipo haya creado el tiquete en el ixplorer o bien nosotros mismos generamos el tiquete.
Los tiquetes deben de crearse en el repositorio upstream, donde todos los miembros del equipo los puedan ver y así lograr comunicar lo que hay que realizar con la tarea.
TODO:// Realizar descripción para elaborar un tiquete o decidir si queda para otro capítulo.
En este caso, nuestra amiga Michelle tiene varios tiquetes asignados. Vamos a tomar el tique #6 como ejemplo a trabajar. La idea es que relacionemos el número del tiquete con el nombre de la rama que vamos a crear.
Ya que Michelle conoce que los cambios que va a realizar corresponden a la tarea designada en el tiquete 6 del repositorio, su rama la va a llamar T6. Recomendamos seguir este estilo para nombrar ramas porque disminuyen complejidad y resulta más sencillo comprender las relaciones entre números de tiquetes y nuestras ramas.
Para crear la nueva rama buscamos la pestaña de git en la interfaz de RStudio. Allí lograremos ver una opción que dice New branch. Le damos click y nos desplegará un cuadro con la opción de ponerle nombre a la rama. En este caso siguiendo la convención Michelle la nombra T6 y seguidamente le da click en Create
Aparecerá un cuadro que nos mostrará el resultado de crear la rama. Cuando notamos que finalizó (porque ya no aparece más diálogo) lo cerramos.
Seguidamente validamos que estamos en nuesta nueva rama donde realizaremos todos los cambios pertinentes para finalizar la tarea descrita en el tiquete 6. Esto lo vemos en la pestaña de git donde notarás que en lugar de decir master en la esquina derecha, dirá T6
¡Listo! Podemos iniciar nuestra aventura en R.
11.3 Incluir mis cambios en el control de versiones
Ya Michelle ha terminado su tarea en la rama T6 y quiere incluir sus cambios en el control de versiones. Guardar el archivo únicamente hará que los cambios queden en nuestro computador pero si este prende en llamas perderemos todo nuestro trabajo.
Para esto tenemos que subir nuestros cambios a nuestra bifurcación y lo realizamos de la siguiente manera:
- Primero guardamos el archivo con
Ctrl
+s
- Luego abrimos la pestaña de git y veremos todos los archivos que han sido creados o modificados. En este caso Michelle realizó cambios en el archivo llamado
logistic_regression.Rmd
- Para incluir el archivo en el control de cambios, primero lo agregamos seleccionandolo en la cajita de Staged
- Seguidamente damos click en el botón de commit que está justo encima de la línea que marcamos. Se nos abrirá una nueva ventana con una serie de recuadros. En el superior izquierdo veremos el archivo elegido para incluir en el control de cambios. En el superior derecho tenemos espacio para escribir el mensaje del commit y en cuadro inferior veremos el archivo y en un color verduzco las lineas de código nuevas que se han generado en el archivo.
- En el recuadro para el mensaje del commit vamos a dejar un mensaje que describa en una oración el trabajo que hemos realizado. Podemos incluir una referencia (Ref #6) al tiquete que en ixplorer nos asignó y describió la tarea.
- Ya con el mensaje listo, damos click en el botón commit. Se nos abrirá un cuadro con el mensaje de si el proceso fue exitoso o no.
- Cerramos el cuadro dando click en el botón close y volveremos al recuadro inicial. Notaremos que habrá un mensaje que nos indica que nos falta hacer el push (subir los cambios a nuestra bifurcación en ixplorer)
- Así que seguidamente damos click en el botón push. De nuevo aparecerá una ventana que dará el mensaje de si la operación fue exitosa o no:
- Le damos cerrar y listo. Nuestros cambios estarán en nuestra bifurcación en ixplorer bajo la rama T6.
11.4 Generando una solicitud de fusión
A este punto Michelle tiene su trabajo listo. Está en su control de verisones local (su computadora) y en ixplorer. Pero todo este trabajo está completamente de su lado, sus compañeros de equipo necesitan incorporar los cambios de Michelle.
Para que esto ocurra, Michelle debe de hacer una solicitud de fusión. Esto se hace desde el entorno ixplorer (o el que se encuentren usando como Github, Azure).
El primer paso es que Michelle navegue hasta el repositorio madre (upstream). Una vez allí deberá de buscar la pestaña Solicitudes de fusión y darle click. Dentro de esta pestaña encontrará un botón de color verde que dice Solicita fusión.
Al darle click al botón de solicitar fusión, se abrirá una nueva ventana, en la cual tendremos la opción del repositorio al que queremos llevar los cambios y el repositorio del cual queremos traer los cambios. Es necesario cambiar la última opción, lo cual hacemos dando click al espacio de selección de la derecha. Al hacerlo se despliegan una serie de opciones. Debe de seleccionar su bifuración y su rama que contiene el trabajo que desear llevar al repositorio central. En este caso su bifurcación está bajo el nombre ed Michelle y la rama que contiene el trabajo es la 6. Se verá como michelle:T6
Una vez que dimos las opciones anteriores, se abrirá una nueva ventana que contendrá la información de los cambios que queremos integrar. Veremos el autor, el SHA del commit, el mensaje que escribimos y la fecha del commit. También observaremos la comparación entre el archivo que se encuentra en el repositorio madre y nuestro archivo que contiene los últimos cambios generados.
Esta es una oportunidad para volver a revisar nuestros cambios. Si todo está bien damos click en el botón Solicita fusión para continuar con el proceso.Con esto tendremos una nueva ventana donde tenemos la opción de darle un título a nuestra solicitud de fusión. Debe de ser corto y fácil de entender el trabajo realizado por nosotros. Luego tenemos un recuadro más grande en donde podemos detallar los cambios que estamos entregando. Una buena práctica es hacer una lista de los cambios que hemos incluido en nuestra solicitud de fusión. De esta manera, quién sea el encargado de hacer la revisión de nuestro trabajo, podrá tener un mejor contexto de la entrega que estamos haciendo.
Al terminar de describir nuestro trabajo, finalizamos el proceso dando click en el botón Crear solicitud de fusión
Lo anterior es una parte del trabajo de documentación y comunicación asincrónica. Tenemos que completar otras características de la solicitud de fusión como lo es asignar al compañero del equipo encargado de la revisión y revisión (o rechazo) de nuestro trabajo. Podemos etiquetar la solicitud de fusión (ya sea una mejora a código ya existente, nuevo código, solución a un error). También podemos poner una fecha límite (acorde a los objetivos del proyecto)
Una vez seleccionadas todas estas opciones, hemos finalizado. Nuestra entrega de trabajo está lista. Podemos continuar con otras tareas mientras el compañero de equipo revisa y acepta o rechaza nuestro trabajo. Si lo rechaza debemos de volver a la rama T6 a realizar los cambios recomendados.
En caso de que acepte nuestro trabajo, este será integrado al repositorio central y de esta manera nuestro equipo podrá actualizar
11.5 Error al elegir proyecto git en Windows
En caso de que aparezca un error como este:
Es muy probable que durante la instalación de git en windows no se eligieran las opciones correctas. Por ende sugerimos seguir los pasos tal y como están descritos en el tutorial: Instalación git en windows. Si somos usuarios de distribuciones de linux, muy probablemente ya tengamos instalado git en el computador.
Así mismo deberíamos de configurar en RStudio el sistema de control de versiones. Esto se hace buscando en tools >> global options >> Git/SVN y en la primera opción debemos de elegir el ejecutable de git que hemos instalado.
Para encontrar el ejecutable de git que hemos instalado nos dirigimos a nuestra unidad de disco duro >> Program files >> Git >> bin >> git.exe
Ya con esto deberíamos de estar listos para iniciar un proyecto con RStudio y git.
📦