Git · 05

GitHub y repositorios remotos

Cómo sincronizar tu repositorio local con GitHub, colaborar con otras personas mediante pull requests, iniciar sesión de forma segura y publicar un sitio a partir del repo.

Términos de esta página

Remoto
Otra copia del repositorio, guardada en un servidor (GitHub). Tu repo local puede tener varios; cada uno tiene un nombre y una URL.
origin
El nombre por defecto del remoto principal (el que se crea al clonar o con git remote add origin).
origin/main
Una copia de referencia, en tu PC, de cómo estaba main en GitHub la última vez que preguntaste. Se actualiza con fetch o pull.
fetch
Descargar las novedades del remoto sin tocar tus archivos ni tus ramas.
pull
fetch + unir esas novedades a tu rama actual.
push
Subir tus commits locales al remoto.
Pull request (PR)
En GitHub, un pedido para unir una rama a otra. Muestra los cambios, permite comentarlos y aprobarlos antes del merge.
Fork
Tu propia copia, en tu cuenta de GitHub, del repositorio de otra persona. Sirve para proponer cambios a proyectos en los que no tenés permiso de escritura.
HTTPS / SSH
Dos formas de conectarse a GitHub. HTTPS usa tu sesión (o un token); SSH usa un par de claves guardado en tu PC.
Token (PAT)
Personal Access Token: una contraseña especial, generada en GitHub, con permisos y vencimiento, que se usa en lugar de tu contraseña real.
1

Ver y configurar remotos

git remote -v
Lista los remotos y sus URLs (una para bajar, fetch, y otra para subir, push; normalmente iguales).
origin  https://github.com/mataguirre7/docker-cheatsheet.git (fetch)
origin  https://github.com/mataguirre7/docker-cheatsheet.git (push)
git remote add origin https://github.com/<usuario>/<repo>.git
Conecta un repo local con uno de GitHub. Si ya existe origin, da error: usá set-url.
git remote set-url origin https://github.com/<usuario>/<nuevo-nombre>.git
Cambia la URL (por ejemplo, si renombraste el repo en GitHub o pasás de HTTPS a SSH).
git remote rename origin github
git remote remove github
Renombrar o quitar un remoto. Quitarlo no borra nada en GitHub: solo desconecta tu copia local.
2

fetch, pull y push

Tu PC guarda una “foto” de cómo estaban las ramas de GitHub: origin/main. Esa foto no se actualiza sola: por eso git status puede decir “up to date” aunque alguien haya subido cambios. fetch actualiza la foto; pull además la une a tu rama; push manda tus commits para allá.

Tu computadora main tu rama, tus commits origin/main foto de GitHub (solo lectura) GitHub main en origin git fetch merge git pull = fetch + merge git push fetch nunca toca tus archivos · pull sí · push solo sube commits (no archivos sin commitear)

Traer cambios

git fetch
Descarga novedades de todas las ramas del remoto. Después, git status te dice si estás atrás (behind) o adelante (ahead).
git log --oneline main..origin/main
Después de un git fetch, lista los commits que están en GitHub (origin/main) y todavía no en tu main: lo que vas a recibir con el próximo pull. Al revés (origin/main..main) muestra lo tuyo que falta subir.
git pull
Descarga los commits nuevos del remoto y los une a tu rama actual (es fetch + merge). Hacelo al empezar a trabajar y antes de push. Si vos y otra persona cambiaron las mismas líneas, aparece un conflicto (ver Ramas).

Subir cambios

git push
Sube los commits de la rama actual a su rama en el remoto (si ya tiene upstream).
git push -u origin mi-rama
La primera vez que subís una rama nueva: la crea en GitHub y la deja emparejada.
!

Si el push es rechazado (“rejected… fetch first”), alguien subió commits que no tenés. Hacé git pull, resolvé conflictos si aparecen y volvé a hacer git push.

✕

git push --force pisa lo que haya en GitHub y puede borrar trabajo ajeno. Si alguna vez lo necesitás (después de un rebase en tu propia rama), usá git push --force-with-lease, que se frena si hay algo que no viste.

3

Pull requests: revisar antes de unir

Un pull request (PR) no es un comando de Git: es una página de GitHub donde se proponen los cambios de una rama para unirlos a otra. Ahí se ven los diffs, se comenta línea por línea y se aprueba. Es la forma estándar de trabajar en equipo, y también sirve solo, para revisar tus propios cambios antes de llevarlos a main.

Crear un PR

  1. En tu PC: git switch -c mejora-readme, hacé tus commits y git push -u origin mejora-readme.
  2. Entrá al repo en GitHub: aparece un aviso amarillo “mejora-readme had recent pushes” con el botón Compare & pull request.
  3. Revisá que diga base: main ← compare: mejora-readme.
  4. Escribí un título y una descripción de qué cambia y por qué → Create pull request.

Revisar y unir

  1. Pestaña Files changed: los cambios línea por línea. Se puede comentar cada línea.
  2. Si hay que corregir algo, hacés más commits en la misma rama y git push: el PR se actualiza solo.
  3. Cuando está listo: Merge pull request → Confirm merge. GitHub ofrece borrar la rama: aceptá.
  4. En tu PC: git switch main, git pull, git branch -d mejora-readme.
i

Si GitHub dice “This branch has conflicts”, resolvelos en tu PC: git switch mejora-readme, git merge main, resolvés, commit y push.

4

Contribuir a un repo ajeno (fork)

  1. En el repo de la otra persona, botón Fork: se crea una copia en tu cuenta (github.com/<tu-usuario>/<repo>).
  2. Cloná tu copia: git clone https://github.com/<tu-usuario>/<repo>.git.
  3. Agregá el original como segundo remoto, para traer sus novedades: git remote add upstream https://github.com/<dueño>/<repo>.git.
  4. Rama nueva, commits y git push -u origin mi-cambio (a tu fork).
  5. En GitHub, abrí el PR desde tu fork hacia el repo original.
  6. Para actualizar tu copia más adelante: git fetch upstream y git merge upstream/main.
5

Iniciar sesión en GitHub desde Git

GitHub no acepta tu contraseña de la web para git push. Hay tres formas válidas.

A. Navegador (lo más fácil)

Con Git para Windows viene el Git Credential Manager. En el primer push abre una ventana: Sign in with your browser → autorizás en GitHub → listo. Queda guardado en el Administrador de credenciales de Windows.

git config --global credential.helper
Debería decir manager. Si no dice nada: git config --global credential.helper manager.

B. Token personal (PAT)

  1. GitHub → tu foto → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
  2. Elegí vencimiento, los repos y el permiso Contents: Read and write.
  3. Copiá el token (se muestra una sola vez) y usalo como “contraseña” cuando Git la pida.
!

Tratalo como una contraseña: nunca lo pegues en un archivo del repo.

C. Clave SSH

ssh-keygen -t ed25519 -C "<tu-email>"
Crea un par de claves en ~/.ssh/. Aceptá la ruta con Enter (podés ponerle una frase de seguridad).
Get-Content ~/.ssh/id_ed25519.pub
Muestra la clave pública. Copiala en GitHub → Settings → SSH and GPG keys → New SSH key.
ssh -T git@github.com
Prueba: tiene que decir “Hi <usuario>! You've successfully authenticated”. Después usá URLs del tipo git@github.com:<usuario>/<repo>.git.
6

Publicar un sitio en Netlify desde GitHub

Para sitios estáticos (HTML, CSS, JS), como estas cheatsheets.

Conectar una vez

  1. Subí el sitio a un repo de GitHub (pasos 6 y 7 de Primeros pasos).
  2. Entrá a app.netlify.com e iniciá sesión con tu cuenta de GitHub.
  3. Add new site → Import an existing project → GitHub. La primera vez, autorizá a Netlify a ver tus repos (podés limitarlo a algunos).
  4. Elegí el repo. En Build command dejá vacío y en Publish directory poné . (o lo que diga el netlify.toml del repo).
  5. Deploy. En segundos te da una URL del tipo https://nombre-al-azar.netlify.app; se puede cambiar en Site configuration → Change site name.

Después: publicar = hacer push

Netlify queda “mirando” la rama main. Cada vez que hacés git push a main (o se mergea un PR), vuelve a publicar el sitio solo.

git add .
git commit -m "Actualiza la hoja de comandos"
git push
Uno o dos minutos después, el cambio está online. En Netlify, la pestaña Deploys muestra cada publicación y su estado.
✓

Los PRs también generan un Deploy Preview: una URL temporal para ver el cambio antes de unirlo.

7

Archivos que todo repo debería tener

ArchivoPara qué
README.mdLa portada del repo en GitHub: qué es el proyecto, cómo instalarlo y usarlo. Se escribe en Markdown (# títulos, - listas, ``` bloques de código).
.gitignoreQué no debe entrar en el repo (dependencias, secretos, archivos generados).
LICENSEQué pueden hacer otros con tu código. Sin licencia, legalmente nadie puede reutilizarlo. GitHub tiene plantillas (MIT es la más simple).
.gitattributesOpcional: reglas por tipo de archivo, por ejemplo fines de línea (* text=auto).

No encontré resultados.