11 Conéctate a GitHub
Objetivo: asegurarse de que puede extraer y enviar GitHub desde su computadora.
No explico en detalle todos los comandos de Shell (Apéndice A) y Git. Este es un ejercicio de diagnóstico/configuración de caja negra. En capítulos posteriores y en talleres en vivo, revisamos estas operaciones con mucha más narrativa y discusión de flujos de trabajo alternativos.
Supongo que ha decidido si utilizar HTTPS (consulte Capítulo 9) o SSH (consulte Capítulo 10) y ha preparado su credencial.
11.1 Hacer un 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.
11.2 Clona el repositorio en tu computadora local
Tenemos algunas formas de hacer esto. Aquí usamos la línea de comando Git. En (Capítulo 15), mostramos otros métodos que quizás prefieras en la vida diaria: usar usethis o RStudio IDE.
Ir al shell (Apéndice A).
Hazte cargo de… ¡o al menos notalo! – en qué directorio estás. pwd
muestra el directorio de trabajo. cd
es el comando para cambiar de directorio. Personalmente, haría este tipo de cosas en ~/tmp
.
Clona myrepo
de GitHub a tu computadora. Utilice la URL que acabamos de copiar de GitHub. Esta URL debe tener su nombre de usuario de GitHub y el nombre de su repositorio de práctica. Si su shell (Apéndice A) coopera, debería poder pegar todo el bit https://....
que copiamos arriba. Pero algunos shells no reconocen (inmediatamente) el portapapeles. En ese triste caso, debes escribirlo. Precisamente.
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git
Esto debería verse así:
~/tmp % git clone https://github.com/jennybc/myrepo.git
Cloning into 'myrepo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
Haga de este nuevo repositorio su directorio de trabajo, enumere sus archivos, muestre el archivo README y obtenga información sobre su conexión a GitHub:
cd myrepo
ls
head README.md
git remote show origin
Esto debería verse así:
~/tmp % cd myrepo
~/tmp/myrepo % ls
README.md
~/tmp/myrepo % head README.md
# myrepo
checking stuff for Happy Git
~/tmp/myrepo % git remote show origin
* remote origin
Fetch URL: https://github.com/jennybc/myrepo.git
Push URL: https://github.com/jennybc/myrepo.git
HEAD branch: main
Remote branch:
main tracked
Local branch configured for 'git pull':
main merges with remote main
Local ref configured for 'git push':
main pushes to main (up to date)
11.3 Haga un cambio local, confirme y envie
Agregue una línea a README y verifique que Git note el cambio:
echo "A line I wrote on my local computer " >> README.md
git status
Esto debería verse así:
~/tmp/myrepo % echo "A line I wrote on my local computer" >> README.md
~/tmp/myrepo % git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
Prepare (“add”), confirme este cambio y envíelo a su repositorio remoto en GitHub.
Si es un nuevo usuario de GitHub y utiliza HTTPS, es posible que se le solicite su nombre de usuario y contraseña. Aunque GitHub ya no permite la autenticación de nombre de usuario/contraseña, muchas herramientas generales de Git todavía enmarcan la tarea de autenticación con este vocabulario. Por supuesto, proporcione su nombre de usuario de GitHub cuando se le solicite. Sin embargo, la parte más importante es proporcionar su PAT como contraseña. No introduzcas tu contraseña web. Ingrese su PAT. Si ya almacenó su PAT con gitcreds::gitcreds_set()
, debería descubrirse automáticamente y no verá un desafío de credenciales.
git add README.md
git commit -m "Una confirmación de mi computadora local"
git push
Esto debería verse así:
~/tmp/myrepo % git add README.md
~/tmp/myrepo % git commit -m "Una confirmación de mi computadora local"
[main e92528c] Una confirmación de mi computadora local
1 file changed, 1 insertion(+)
~/tmp/myrepo % git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 327 bytes | 327.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/jennybc/myrepo.git
31dcaef..e92528c main -> main
¿Ves un error como este?
~/tmp/myrepo % git push
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/jennybc/myrepo.git/'
Esto significa que ha proporcionado su contraseña web de GitHub, en lugar de su token de acceso personal (PAT). Vuelva a (Capítulo 9) para obtener un PAT. Intente git push
nuevamente y con suerte recibirá otro mensaje que le permitirá corregir cosas y proporcionar su PAT.
Si alguna vez siente que necesita sobrescribir una credencial incorrecta con una nueva, la forma más sencilla de hacerlo es llamar gitcreds::gitcreds_set()
desde R.
11.3.1 Ventanas y finales de línea.
En Windows, es posible que vea un mensaje que diga LF will be replaced by CRLF
. Esto es normal y no requiere ninguna acción de su parte. Windows maneja los finales de línea de manera diferente a otros sistemas operativos, pero la configuración predeterminada de Git para Windows es apropiada para la mayoría de las personas y situaciones.
Aquí hay un comando para revelar la configuración de final de línea actual y algunos resultados típicos en Windows:
$ git config --show-origin --get core.autocrlf
file:"C:\\ProgramData/Git/config" true
Si su valor se muestra como false
, puede establecerlo en true
con este comando:
$ git config --global core.autocrlf true
true
es la configuración predeterminada actual para core.autocrlf
para Git para Windows, nuestro método recomendado para instalar Git en Windows. La necesidad de configurar esto explícitamente en su configuración de usuario global sugiere que debería considerar reinstalar o actualizar Git para Windows.
11.4 Confirmar el cambio local propagado al control remoto de GitHub
Vuelve al navegador. Supongo que todavía estamos viendo su nuevo repositorio de GitHub.
Actualizar.
Deberías ver la nueva “Una línea que escribí en mi computadora local” en el archivo README.
Si hace clic en “commits”, debería ver uno con el mensaje “Una confirmación desde mi computadora local”.
Si ha llegado hasta aquí, usted y su repositorio de prueba están listos para pasar a usar Git y GitHub con RStudio.(Capítulo 12).
11.5 Limpiar
Si está listo para concluir esta prueba de su instalación de Git y configuración de GitHub, podemos limpiar el repositorio de prueba ahora.
Local Cuando estés listo para limpiar, puedes eliminar el repositorio local como quieras. Es solo un directorio normal en su computadora.
Aquí se explica cómo hacerlo en el shell, si el directorio de trabajo actual es myrepo
:
cd ..
rm -rf myrepo/
GitHub En el navegador, vaya a la página de inicio de su repositorio en GitHub. Haga clic en “Configuración”.
Desplázate hacia abajo, haz clic en “eliminar repositorio” y haz lo que te pide.