Este post corresponde al meetup realizado en conjunto por los capítulos de R-Ladies Santa Rosa, R-Ladies General Pico y R-Ladies Buenos Aires realizado el 18 de Mayo sobre realizar primeros pasos en Git utilizando R.
El material presentado en este post tiene como fuente el libro Happy Git and GitHub for the useR de Jennifer Bryan
¿Quién sos vos?
Cada lección debe ser pensada, organizada y generada para una audiencia en particular, esta es la persona en la que pensamos cuando preparamos este taller:
Romina trabaja ordenando y analizando datos utilizando R para una variedad de clientes.
Utiliza proyectos en RStudio para ordenar su trabajo. Comparte sus avances y resultados utilizando herramientas en la nube (como dropbox y google drive).
Compartir de esta manera le ha traído varios dolores de cabeza Sabe que Git puede ayudarla con estos problemas pero no le queda claro como. Tiene usuario en GitHub pero nunca usó.
Quiere entender como funciona y como usarlo con R y RStudio para poder incorporarlo a sus proyectos.
¿Qué vamos a ver?
Este mapa conceptual presenta el contenido de este taller
A usar Git desde RStudio
Primera situación: Nuevo proyecto, GitHub primero
Paso 1: Hacer un repositorio en GitHub
Estos pasos se deben realizar sólo una vez por cada proyecto nuevo:
Ir a https://github.com y asegúrate de haber iniciado sesión.
Hacé clic en el botón verde “Nuevo repositorio” o, si estás en tu página de perfil, hacé clic en “Repositorios”, luego haga clic en el botón verde “Nuevo”. complear con los siguientes datos:
Nombre del repositorio: MiRepo (o el nombre que quieras, pero que sea signficativo del proyecto que vas a realizar, que te ayude a recordar de que se trataba cuando lo veas en un tiempo)
Público
SÍ inicializa este repositorio con un archivo README
Hacé clic en el botón verde grande “Crear repositorio”.
Copia la URL HTTPS para clonar el repositorio mediante el botón verde “Clonar o descargar” (o copia la URL SSH si elegiste utilizar claves SSH).
Paso 2: Nuevo proyecto RStudio a través de git clone
- En RStudio, generar un nuevo proyecto:
File > New Project > Version Control > Git .En la “URL del repositorio”, pegue la URL de su nuevo repositorio de GitHub. Será algo como esto https://github.com/nombreusuario/MiRepo.git. Seleccionar Open in new session y hacé clic en Create Project. Esto debería descargar el archivo README.md que creamos en GitHub en el paso anterior. (pasos 1 a 5 de la siguiente figura).
Cuando hacemos click en Create Project se crea un nuevo directorio (carpeta), que cumplirá todas estas funciones:
un directorio o “carpeta” en su computadora
un repositorio de Git, vinculado a un repositorio de GitHub remoto
un proyecto de RStudio
El proyecto ya está listo para ser usando con control de versiones.
En ausencia de otras restricciones, se sugiere que todos tus proyectos de R tengan exactamente esta configuración.
Hay una gran ventaja en el flujo de trabajo “GitHub primero, luego RStudio”: el repositorio de GitHub se agrega como remoto para tu repositorio local y tu master local está ahora mirando los cambios de la master en GitHub. Este es un punto muy técnico pero importante sobre Git. La parte práctica es que ahora está configurado para hacer pull
y push
, sin necesidad de la linea de comandos.
Segunda situación: Proyecto existente, GitHub primero
Si ya estás trabajando en R y no has utilizado Git esta debe ser tu situación: asumimos aquí que tienes tu proyecto R existente aislado en un directorio en tu computadora. Para poder utilizar control de versiones vamos a repetir los pasos 1 y 2 explicados en la situación anterior.
Paso 3: Traer tu proyecto existente al proyecto con control de versiones
Usando tu método favorito para mover o copiar archivos, copia los archivos que constituyen tu proyecto existente en el directorio de este nuevo proyecto.
En RStudio, consulta el panel Git y el navegador de archivos:
- ¿Estás viendo todos los archivos? Deberían estar aquí si la copia/movida de archivos fue exitosa.
- ¿Aparecen en el panel de Git con signos de interrogación? Deberían aparecer como nuevos archivos sin seguimiento.
Si las respuestas a estas preguntas es si, el proyecto local ya está con control de versiones y está asociado al repositorio remoto. Hay u cuarto paso que permitirá actualizar ambos repositorios con todos los archivos del proyecto.
Paso 4: Stage y commit
Tenés que hacer commit de tus archivos en este repositorio. ¿Cómo?
- Hacé clic en la pestaña Git en el panel superior derecho
- Marca la casilla Staged para todos los archivos que queres hacer commit. Por defecto: ponerlo en staged y reconsiderar cuando esto irá a GitHub. Se puede mantener sin problemas uno o una serie de archivos localmente, sin hacer commit al repositorio de Git y sin enviarlo a GitHub . Si no lo pasamos a staged entonces no se tendrá en cuenta al momento de hacer los commits. Si se trata de una situación a largo plazo, o bien es un archivo que nunca será parte del respositorio, entonces hay que agregarlo en .gitignore. (Por jemplo: archivos de datos o archivos temporales)
- Hacé clic en Commit
- Escribe un mensaje en Commit message, como por jemplo: “Commit inicial del proyecto”.
- Hacé clic en Commit
Usando el control de versiones
Ya vimos como funcionan algunos de las acciones de Git en el paso 4 de la segunda situación. Ahora vamos a repasar todo el proceso desde el inicio.
Realizar cambios locales, guardar, confirmar
Deberías hacer esto cada vez que termines una parte valiosa del trabajo, probablemente muchas veces al día. No deberían ser espacios mayores a una hora.
Desde RStudio, vamos a modificar el archivo README.md, por ejemplo, agregando la línea “Esta es una línea desde RStudio”. Guarda tus cambios.
Ahora vamos a confirmar estos cambios en el repositorio local. ¿Cómo?
- Hacé clic en la pestaña Git en el panel superior derecho.
- Marca la casilla Staged para los archivos que querramos gurdar (sean nuevos o modificados).
- Hacé clic en Commit.
- Aparece una ventana emergente. Escribe un mensaje en Commit message, como “Commit desde RStudio” y hacé clic en Commit.
Actualice (push) sus cambios locales a GitHub
Deberías hacer esto varias veces al día, pero menos veces que las que hacés commit. En este momento tienes trabajo nuevo en tu repositorio local, pero los cambios aún no están en el repositorio remoto.
Ahora vamos a actualizar esos cambios del repositorio local al remoto. ¿Cómo?
Primero hacemos Pull desde GitHub. Esto puede parecer contradictorio pero si realizaste cambios en el repositorio remoto desde la interfaz web o desde otra máquina o (un día) un colaborador ha realizado cambios, será mucho mas sencillo (y serás mucho más feliz) si traes esos cambios a tu repositorio local antes de enviar los tuyos haciendo push.
Para hacer Pull presionamos la flecha azul en la pestaña Git en RStudio. Lo más probable es que recibas un mensaje de que está todo actualizado (Already up-to-date).Hacé clic en el botón verde Push para enviar tus cambios locales a GitHub. Puede ser que solicite el usuario y contraseña de github. Debería ver algún mensaje similar a la siguiente figura.
Confirmando que el cambio local se actualizó en el repositorio remoto de GitHub
Para confirmar que el cambio que realizamos en RStudio se ecnuentra reflejado en el repositorio remoto, vamos a regresar al navegador a la página del repositorio en GitHub. Si actualizamos, se debería ver la nueva linea de texto “Esta es una linea desde RStudio” en el archivo README.
Si haces clic en commits, debería ver un commit con el mensaje “Commit from RStudio”.
Hacer un cambio en GitHub
Hacé clic en README.md en el listado de archivos en GitHub.
En la esquina superior derecha, hacé clic en el lápiz para editar el archivo.
Agrega una línea de texto a este archivo, como por ejemplo: “Línea agregada desde GitHub”.
Edita el mensaje de commit en Commit changes o acepta el valor predeterminado.
Hacé clic en el gran botón verde Commit changes.
Pull desde GitHub
De vuelta en RStudio localmente …
Revisa tu archivo README.md, NO debe tener la línea “Línea agregada desde GitHub”. Debería estar igual a como lo dejaste. Verificalo.
Hacé clic en el botón azul Pull.
Revisa README.md nuevamente. Ahora debería ver la nueva línea allí.
Y eso es todo…solamente se debe repetir este patrón. Siempre intenta tener los dos repositorios: local y remoto, sincronizados. Recuerda que es recomendable siempre hacer un Pull antes de intentar hacer Push con nuestros cambios.
¿Cómo seguimos?
Primero te dejamos aqui acceso a la presentación del meetup donde hay más datos de como utilizar Git desde la consula. Estos son solos los primeros pasos y hay mucho mas para conocer sobre el funcionamiento del control de versiones.
Recomendamos leer el libro Happy Git and GitHub for the useR de Jennifer Bryan en el que se basa gran parte de este tutorial.
Y por supuesto prestar atención a los nuevos meetups de R-Ladies!