17  Proyecto existente, GitHub último

Este es un flujo de trabajo explícito para conectar un proyecto R local existente a GitHub, cuando por alguna razón no puedes o no quieres realizar un flujo de trabajo “GitHub primero” (ver Capítulo 15) y ?sec-existing- github-primero).

¿Cuándo surge esto? Ejemplo: es un proyecto existente que ya es un repositorio de Git con un historial que le interesa. Entonces tienes que hacer esto correctamente.

Esto puede ser menos deseable para un principiante porque hay más oportunidades de confundirse y cometer un error. Pero este flujo de trabajo no es tan difícil, incluso con la línea de comandos de Git, y es aún más fácil si utiliza las comodidades del paquete usethis o el IDE de RStudio. Todos estos se tratan a continuación.

17.1 Preparar el proyecto local.

Asumimos que tiene su proyecto R existente aislado en un directorio de su computadora. Si eso aún no es cierto, hazlo así. Cree un directorio y reúna allí todos los datos y scripts R existentes. Realmente no importa dónde hagas esto, pero ten en cuenta dónde se encuentra actualmente el proyecto.

Le animo a que convierta este proyecto en un proyecto de RStudio, aunque no es absolutamente necesario. Si opta por no participar en esto, las instrucciones que usan la línea de comando Git o usethis seguirán funcionando para usted, fuera de RStudio.

17.1.1 Realizar o verificar un Proyecto RStudio

Si el proyecto aún no es un proyecto RStudio, hágalo así:

  • Dentro de RStudio puedes hacer: File > New Project > Existing Directory y, si lo deseas, “Abrir en nueva sesión”.
  • Alternativamente, desde R, llame usethis::create_project("path/to/your/project"), sustituyendo la ruta al directorio de su proyecto existente.

Si su proyecto ya es un proyecto RStudio, ejecútelo.

17.1.2 Crear o verificar un repositorio de Git

Deberías estar en RStudio ahora, en tu proyecto.

¿Ya es un repositorio de Git? La presencia del panel Git debería alertarte. Si es así, ya está.

Si no, tienes varias opciones:

  • En la consola R, llame usethis::use_git().
  • En RStudio, vaya a Tools > Project Options … > Git/SVN. En “Sistema de control de versiones”, seleccione “Git”. ¿Confirmar el nuevo repositorio de Git? ¡Sí!
  • En el shell, con el directorio de trabajo configurado en el directorio del proyecto, haga git init.

Si usó usethis o RStudio para inicializar el repositorio de Git, el proyecto debería reiniciarse en RStudio. Hágalo usted mismo si hizo git init. RStudio ahora debería tener un panel Git.

17.2 Preparar y confirmar

Si su proyecto local ya era un repositorio de Git y estaba actualizado, continúe. De lo contrario, probablemente necesites preparar y confirmar.

  • Haga clic en la pestaña “Git” en el panel superior derecho
  • Marque la casilla “Staged” para todos los archivos que desee confirmar.
    • Predeterminado: organizar todo
    • Cuándo hacer lo contrario: todo esto irá a GitHub. Así que considere si eso es apropiado para cada archivo. Puedes conservar absolutamente un archivo localmente, sin enviarlo al repositorio de Git y enviarlo a GitHub. Simplemente déjelo reposar en su panel Git, sin que esté preparado. No se hará ningún daño. Si se trata de una situación a largo plazo, incluya el archivo en .gitignore.
  • Si aún no estás en la ventana emergente de Git, haz clic en “Commit”
  • Escribe un mensaje en “Commit message”.
  • Haga click en “Commit”

17.3 Crear y conectar un repositorio de GitHub

Mostraremos algunos métodos para crear un nuevo repositorio de GitHub y conectarlo a su repositorio local. Elegir uno.

17.3.1 Cree y conecte un repositorio de GitHub con usethis

Para utilizar usethis para esta tarea, debe haber configurado un token de acceso personal (PAT). Esto ya estará configurado para cualquiera que use HTTPS como protocolo, porque ya están usando PAT para autenticarse para otras operaciones de Git. Pero si eres una persona SSH, necesitarás configurar un PAT, lo cual se explica en Capítulo 9. Está bien tener claves PAT y SSH.

En su proyecto, en la Consola R, llame a:

usethis::use_github()
#> ✓ Creating GitHub repository 'jennybc/myrepo'
#> ✓ Setting remote 'origin' to 'https://github.com/jennybc/myrepo.git'
#> ✓ Pushing 'main' branch to GitHub and setting 'origin/main' as upstream branch
#> ✓ Opening URL 'https://github.com/jennybc/myrepo'

usethis::use_github() connects a local repo to a new GitHub repo.

usethis::use_github() hace lo siguiente:

  • Crea un nuevo repositorio en GitHub.
  • Configura ese nuevo repositorio como el remoto origin para el repositorio local.
  • Configura tu rama local predeterminada (por ejemplo, main) para rastrear la misma en origin y realiza un envío inicial.
  • Abre el nuevo repositorio en tu navegador.

17.3.2 Cree y conecte un repositorio de GitHub sin usar esto

Primero, necesitas crear un nuevo repositorio en GitHub.

Vaya a https://github.com y asegúrese de haber iniciado sesión.

Cerca de “Repositorios”, haga clic en el gran botón verde “Nuevo”. O, si está en su propia página de perfil, haga clic en “Repositorios” y luego haga clic en el gran botón verde “Nuevo”.

Cómo completar esto:

  • Plantilla de repositorio: sin plantilla.
  • Nombre del repositorio: <<>>
  • Descripción: <<>>
  • Público.
  • <<>>

Haga clic en el gran botón verde que dice “Crear repositorio”.

Ahora haga clic en el gran botón verde que dice “<> Code”.

Copie una URL clonada a su portapapeles. Si sigue nuestro consejo predeterminado, copie la URL HTTPS. Pero si opta por SSH, asegúrese de copiar la URL de SSH.

Selecting an HTTPS vs SSH URL on GitHub

17.3.2.1 Conecte el repositorio local al repositorio de GitHub con RStudio

Haga clic en “dos cuadros morados y un cuadrado blanco” en el panel de Git. Haga clic en “Add remote”. Pegue aquí la URL del repositorio de GitHub y elija un nombre remoto, casi con seguridad origin. Ahora “Add”.

Deberíamos volver al cuadro de diálogo “New branch” (si no, haga clic nuevamente en “dos cuadros morados y un cuadrado blanco” en el panel de Git). Supongo que estás en la rama main y quieres que rastree main en GitHub (o cualquier rama predeterminada que estés usando). Ingrese main como nombre de la rama y asegúrese de que “Sync branch with remote” esté marcado. Haga clic en “Create” (sí, aunque la rama ya existe). En el siguiente cuadro de diálogo, elija “overwrite”.

17.3.2.2 Conecte el repositorio local al repositorio de GitHub con la línea de comando

En un shell, haz esto, sustituyendo tu URL:

git remote add origin https://github.com/jennybc/myrepo.git

Envie y consolide la relación de seguimiento entre su rama main local y main en GitHub (o como se llame su rama predeterminada):

git push --set-upstream origin main

17.4 Confirme los archivos locales propagados al control remoto de GitHub

Vuelve al navegador. Supongo que todavía estamos viendo su nuevo repositorio de GitHub.

Actualizar.

Deberías ver todos los archivos del proyecto que confirmaste allí.

Si este proyecto ya tenía un historial de Git, debería reflejarse en GitHub.

17.5 El fin

Ahora simplemente “haga espuma, enjuague, repita”. Trabaje en algún lugar: localmente o en GitHub. Confirme los cambios. Envielos o importelos, dependiendo de dónde haya realizado el trabajo, pero “sincronice” local y remoto. Repetir.

Tenga en cuenta que, en general (y especialmente en el futuro, cuando colabore con otros desarrolladores), normalmente necesitará importar cambios desde el control remoto (GitHub) antes de enviar los cambios locales que ha realizado. Por esta razón, es una buena idea intentar adquirir el hábito de importar antes de intentar enviar.