APLICAWEB 4to/Propuesta Intensiva 8 Semanas/Unidad 1/Cuentas Git
guía de referencia · usar cuando haga falta
cuentas
git

Tener Git y VS Code vinculados, y manejar dos cuentas sin arriesgar ninguna

Esta guía cubre dos cosas separadas: (1) conectar Git con VS Code si nunca lo hiciste, y (2) si ya tienes una cuenta personal de GitHub y vas a crear una cuenta nueva exclusiva para la clase, cómo usar las dos sin que una pise a la otra — ni en los commits, ni al hacer push, ni sin saber cuál está activa.

Regla de oro: la identidad de Git (quién firma tus commits) y la sesión de GitHub en VS Code (con qué cuenta autenticas) son dos cosas distintas. Esta guía te enseña a controlar las dos, por separado, en cada repo.
Ejemplo guiado con datos reales: todos los comandos de esta guía usan como caso concreto a Bernardo Prado Díaz — cuenta de clase prado-diaz-bernardo, nombre visible Prado_Diaz_Bernardo — conviviendo con una cuenta personal de ejemplo. Reemplaza esos valores por los tuyos manteniendo el mismo patrón.
Todo se hace desde Visual Studio Code: cada comando de esta guía se escribe en la Terminal integrada de VS Code (Ctrl+ñ, o menú Terminal → Nueva Terminal) y cada archivo se edita abriéndolo en VS Code. Las únicas excepciones son las pantallas que solo existen en github.com (crear la cuenta, generar un token, pegar una clave SSH) — esas se marcan explícitamente como "en el navegador".
01

Vincular Git con Visual Studio Code (si nunca lo hiciste)

caso: primera vez

VS Code no "tiene" una cuenta de Git propia — usa el Git que está instalado en tu computadora, y opcionalmente inicia sesión en GitHub para funciones extra (crear repos, ver Pull Requests, autenticarse al hacer push).

01

Confirmar que VS Code detecta Git

Abre la terminal integrada (Ctrl+ñ) y corre:

VS Code · Terminal integrada
# Muestra la versión instalada; si da error, instala Git desde git-scm.com primero
$ git --version

Si te devuelve algo como git version 2.4x.x, VS Code ya puede usarlo — vas a ver el ícono de "Control de código fuente" (una rama) en la barra lateral izquierda activarse en cualquier carpeta con un repo.

02

Iniciar sesión en GitHub desde VS Code

Abajo a la izquierda de la ventana hay un ícono de persona ("Accounts"). Haz clic → "Sign in with GitHub". Se abre el navegador, inicias sesión con la cuenta que quieras usar en ese momento, y vuelves a VS Code ya autenticado. También aparece este mismo cartel si usas el botón "Publish to GitHub" desde el panel de Control de código fuente.

03

Configurar tu identidad de Git (quién firma los commits)

Esto es independiente del paso anterior. Se hace por terminal, una sola vez por cuenta:

VS Code · Terminal integrada
# Nombre que va a aparecer como autor en tus commits
$ git config --global user.name "Tu Nombre"
# Correo asociado a esos commits (idealmente el mismo de tu cuenta de GitHub)
$ git config --global user.email "tu-correo@ejemplo.com"

El flag --global significa "esta es mi identidad por defecto en todos los repos de esta computadora". Más abajo (paso 03) vas a ver cómo pisar este valor solo en el repo de la clase.

TIP

El ícono de "Accounts" controla la sesión de GitHub dentro de VS Code (extensiones, Pull Requests, Settings Sync). El git config controla quién firma los commits. Puedes estar logueado en VS Code con una cuenta y commitear con la identidad de otra — por eso hay que revisar ambas cosas, no una sola.

02

Crear la cuenta nueva exclusiva para la clase

caso: ya tienes una cuenta personaltodo este paso es en el navegador, en github.com

Si ya usas GitHub para proyectos propios, NO uses esa cuenta para la clase. Crea una cuenta separada, con un nombre de usuario que el profesor pueda identificar de un vistazo.

01

Cerrar sesión o abrir una ventana de incógnito

Para no crear la cuenta nueva "adentro" de tu sesión personal, abre una ventana de incógnito del navegador antes de ir a github.com/signup.

02

Elegir el nombre de usuario

La convención pedida es apellidoPaterno_apellidoMaterno_nombres. Hay un problema técnico: GitHub no permite guiones bajos (_) en el nombre de usuario — solo letras, números y guiones medios (-), y no puede empezar ni terminar con guion.

OJO

Usa guiones medios en el username: prado-diaz-bernardo. Guarda el formato con guion bajo (Prado_Diaz_Bernardo) para el "Name" / nombre para mostrar del perfil (Settings → Public profile → Name), que sí acepta guiones bajos y espacios. Así cumples la convención donde el profesor la va a ver: en el nombre visible del perfil.

03

Usar un correo real y distinto al de tu cuenta personal

GitHub no deja repetir el mismo correo en dos cuentas. Si no tienes un segundo correo, se puede crear uno nuevo gratis (Gmail/Outlook) solo para esta cuenta de clase.

04

Verificar el correo y completar el perfil

Confirma el mail de verificación y completa el nombre visible como se indicó en el paso 02.

TIP

No hace falta cerrar sesión de tu cuenta personal en ningún lado para que esto funcione — las dos cuentas van a convivir. Lo que sí hay que controlar son los tres puntos de los pasos 03 y 04.

03

La identidad de los commits: global vs. local

lo más importante de toda la guía

Git tiene dos "capas" de configuración. Entender esto es lo que te permite tener la cuenta personal como default en toda la compu, y la cuenta de clase SOLO en la carpeta del portafolio, sin que se mezclen.

Configuración global

Se guarda una sola vez en tu computadora y aplica a todos los repos que no digan lo contrario.

  • git config --global user.name "..."
  • git config --global user.email "..."
  • Normalmente: tu identidad personal.

Configuración local (por repo)

Se corre parado dentro de la carpeta del repo, sin --global. Solo afecta a ESE repo.

  • git config user.name "..."
  • git config user.email "..."
  • Úsalo para el repo portafolio de la clase.
01

Ubícate dentro de la carpeta del repo de la clase

VS Code · Terminal integrada
# Entra a la carpeta de tu repo de la clase (ajusta la ruta a la tuya)
$ cd portafolio
02

Configura la identidad LOCAL de este repo con la cuenta de clase

VS Code · Terminal integrada
# SIN --global: esto solo vale adentro de la carpeta "portafolio"
$ git config user.name "Prado Diaz Bernardo"
# El correo de la cuenta NUEVA de clase, no el personal
$ git config user.email "prado-diaz-bernardo@ejemplo.com"
03

Confirma que quedó bien, sin adivinar

VS Code · Terminal integrada
# Muestra el valor EFECTIVO (el local, si existe, gana sobre el global)
$ git config user.name
Prado Diaz Bernardo
$ git config user.email
prado-diaz-bernardo@ejemplo.com

# Muestra DE DÓNDE sale cada valor: si dice ".git/config" es local (de este repo);
# si dice algo como "C:/Users/tu-usuario/.gitconfig" es tu global (personal)
$ git config --list --show-origin | grep user
TIP

Tu cuenta personal global no se toca con estos comandos. Cualquier otro repo que ya tengas en la compu sigue firmando commits con tu identidad personal; solo la carpeta portafolio queda "marcada" con la identidad de clase.

04

Autenticación: que el push realmente use la cuenta correcta

identidad ≠ autenticación

Configurar user.name/user.email decide quién firma el commit. Pero al hacer git push, GitHub te deja subirlo solo si te autenticas con una cuenta que tenga permiso sobre ese repo. Aquí es donde más se mezclan las cuentas por accidente. Hay dos formas de resolverlo:

Opción A — HTTPS + Personal Access Token

Más simple, suficiente para un solo repo de clase.

  • Al hacer git push, si pide usuario/contraseña, pon el username de la cuenta de clase y un token (no la contraseña) generado desde esa cuenta.
  • Riesgo: Windows guarda esa credencial y puede quedar "pegada" a la cuenta equivocada si ya habías pusheado antes con la personal.

Opción B — Clave SSH separada por cuenta

Más robusta: cada repo queda "cableado" a una cuenta, sin ambigüedad ni credenciales que se pisen.

  • Una clave SSH para tu cuenta personal, otra para la de clase.
  • El repo de la clase usa una URL remota que apunta a la clave de clase — no hay forma de confundirse.

Opción A paso a paso: token por cuenta (HTTPS)

01

Generar el token en la cuenta de clase (en el navegador)

Logueado en github.com con la cuenta de clase: Settings → Developer settings → Personal access tokens → Generate new token. Cópialo (solo se muestra una vez).

02

Si Windows ya guardó otra credencial para github.com, bórrala primero (en Windows, fuera de VS Code)

Panel de Control → Administrador de credenciales → Credenciales de Windows → busca una entrada tipo git:https://github.com → Quitar. Así el próximo push te vuelve a preguntar usuario y token, en vez de reusar la cuenta vieja en automático.

03

Hacer push y cargar la credencial de clase cuando la pida

VS Code · Terminal integrada
# Sube tus commits a GitHub; como es la primera vez, VS Code/Git te va a pedir usuario y contraseña
$ git push -u origin main
# Usuario: el username de la cuenta de CLASE
# Contraseña: pega el TOKEN generado en el paso 01 (no tu contraseña de GitHub)

Opción B paso a paso: SSH con alias por cuenta

01

Generar una clave SSH nueva, solo para la cuenta de clase

VS Code · Terminal integrada
# -f le da un nombre de archivo distinto al de tu clave personal, si ya tenías una
$ ssh-keygen -t ed25519 -C "prado-diaz-bernardo@ejemplo.com" -f ~/.ssh/id_ed25519_clase

Presiona Enter en la frase de contraseña si quieres dejarla vacía (más simple para clase).

02

Cargar la clave en el agente SSH

VS Code · Terminal integrada
# Arranca el "agente" que va a tener la clave lista en memoria durante esta sesión de la Terminal
$ eval "$(ssh-agent -s)"
# Carga tu clave privada de clase en ese agente
$ ssh-add ~/.ssh/id_ed25519_clase
03

Copiar la clave pública (en VS Code) y pegarla en GitHub (paso final en el navegador)

VS Code · Terminal integrada
# Muestra la clave pública en la Terminal integrada de VS Code para poder seleccionarla y copiarla
$ cat ~/.ssh/id_ed25519_clase.pub

En github.com (logueado como cuenta de clase): Settings → SSH and GPG keys → New SSH key → pega el contenido.

04

Crear un alias de host para que Git sepa qué clave usar

Abre el archivo directamente en VS Code desde la Terminal integrada (si no existe, este comando lo crea):

VS Code · Terminal integrada
# El comando "code" abre ese archivo como una pestaña más de VS Code, creándolo si no existe
$ code ~/.ssh/config

Con el archivo ya abierto como pestaña de VS Code, escribe (o completa) esto:

~/.ssh/config — abierto en VS Code
# Tu cuenta personal (si ya usabas SSH con ella)
# Host: el alias que vas a escribir en la URL remota en vez de "github.com"
Host github.com-personal
  # HostName: el servidor real al que se conecta SSH detrás del alias
  HostName github.com
  # User: SIEMPRE "git" — es el usuario técnico del protocolo SSH de GitHub, no tu username
  User git
  # IdentityFile: qué clave PRIVADA usar cuando se use este alias
  IdentityFile ~/.ssh/id_ed25519_personal

# Tu cuenta de clase, con un alias distinto
Host github.com-clase
  # mismo servidor real que arriba
  HostName github.com
  # sigue siendo "git", no tu username de clase
  User git
  # aquí apunta a la clave privada de la cuenta de CLASE, no a la personal
  IdentityFile ~/.ssh/id_ed25519_clase

Guarda con Ctrl+S desde VS Code, como cualquier otro archivo.

05

Apuntar el repo de la clase al alias "github.com-clase"

VS Code · Terminal integrada
# Reemplaza la URL remota para que use el alias con la clave de clase
$ git remote set-url origin git@github.com-clase:prado-diaz-bernardo/portafolio.git
# Verifica que quedó apuntando al alias correcto
$ git remote -v

De ahora en más, cualquier git push/git pull en esta carpeta usa automáticamente la clave de la cuenta de clase — sin preguntarte usuario ni contraseña, y sin poder confundirse con la personal.

OJO

Nunca compartas ni subas a un repo el archivo de clave privada (el que NO termina en .pub). Solo el .pub va a GitHub.

05

Cómo saber SIEMPRE en qué cuenta y rama estás parado

chequeo de 10 segundos, antes de cada commit

Corre esto antes de commitear o pushear si tienes la más mínima duda. Son comandos de solo lectura: no cambian nada.

01

¿Qué identidad va a firmar mi próximo commit?

VS Code · Terminal integrada
# Sin valor a la derecha del "=": git config MUESTRA el valor actual en vez de cambiarlo
$ git config user.name
# Lo mismo para el correo
$ git config user.email
02

¿Con qué cuenta remota se va a autenticar el push?

VS Code · Terminal integrada
# Si usas SSH con alias: fíjate cuál alias aparece (github.com-clase o -personal)
$ git remote -v
03

¿En qué rama estoy?

VS Code · Terminal integrada
# Imprime SOLO el nombre de la rama actual, nada más
$ git branch --show-current
# o, más completo: nombre de rama + qué archivos tienes modificados/sin guardar en el commit
$ git status

En VS Code, la rama actual también se ve siempre abajo a la izquierda de la ventana, junto al ícono de sincronización — hacer clic ahí abre el selector de ramas.

04

¿Quién firmó el último commit? (por si ya commiteaste)

VS Code · Terminal integrada
# -1: solo el último commit. --format="%an <%ae>": muestra el nombre y el correo del autor, nada más
$ git log -1 --format="%an <%ae>"
TIP

En VS Code el ícono de "Accounts" (abajo a la izquierda) muestra con qué cuenta de GitHub está autenticado el editor — pero eso es para las extensiones, no necesariamente la identidad del commit ni la cuenta del push por SSH. Los cuatro comandos de arriba son los que dan la verdad definitiva.

06

Ida y vuelta entre tus dos cuentas, sin miedo

ejemplo guiado con datos reales

Esto es lo que de verdad saca el miedo: un solo comando que te dice, en cualquier carpeta y en cualquier momento, "quién eres" antes de tocar nada. Sigue el ejemplo con la cuenta personal (placeholder) y la cuenta de clase de Bernardo.

01

Crear un atajo git whoami (se configura una sola vez, es global y no rompe nada)

VS Code · Terminal integrada
# --global alias.whoami "...": define un comando nuevo llamado "whoami", disponible en cualquier repo
# El "!" al inicio le dice a Git "lo que sigue son varios comandos de shell", no un solo comando de Git
# Encadenados con && : primero muestra el nombre, después el correo, después la rama actual
$ git config --global alias.whoami "!git config user.name && git config user.email && echo rama: $(git branch --show-current)"

Esto es un alias global de Git: no toca tu identidad ni la de nadie, solo agrega un atajo de lectura que vas a poder usar en cualquier repo, de cualquiera de tus dos cuentas.

02

Párate en tu repo personal y confirma

VS Code · Terminal integrada
# cd: te "mueves" a esa carpeta dentro de la Terminal integrada de VS Code (ajusta la ruta a la tuya)
$ cd ~/proyectos/mi-repo-personal
# Corre el alias que creaste en el paso 01
$ git whoami
Bernardo Prado
bernardopradodiaz@gmail.com
rama: main

Esta es la identidad global (tu cuenta personal), porque este repo nunca tuvo una configuración local que la pisara.

03

Ve al repo de la clase y confirma que cambió

VS Code · Terminal integrada
# Te mueves a la carpeta del repo de la materia
$ cd ~/proyectos/portafolio
# Mismo alias, otra carpeta
$ git whoami
Prado Diaz Bernardo
prado-diaz-bernardo@ejemplo.com
rama: main

Cambió solo porque en el Paso 03 configuraste la identidad LOCAL de esta carpeta. No moviste ningún interruptor: cada carpeta "recuerda" quién eres ahí.

04

Vuelve al repo personal y confirma que NO se mezcló

VS Code · Terminal integrada
# Vuelves a la carpeta personal
$ cd ~/proyectos/mi-repo-personal
# Chequeo final
$ git whoami
Bernardo Prado
bernardopradodiaz@gmail.com
rama: main

Sigue siendo tu identidad personal, intacta. Ese es el punto: cd a la carpeta correcta + git whoami antes de commitear es todo lo que hace falta para moverte entre las dos cuentas sin arriesgar ninguna.

TIP

Si trabajas con VS Code, deja dos ventanas abiertas — una con la carpeta personal, otra con portafolio — cada una va a mostrar su propia rama en la barra de estado. Así ni siquiera tienes que acordarte de hacer cd: cada ventana ya "sabe" en cuál estás.

de dónde sale esto Pro Git: Git Aliases
07

Recetas paso a paso, por caso

Busca tu situación y sigue solo esos pasos.

A

Nunca usaste Git ni GitHub

Instala Git → Paso 01 completo, usando de una vez la cuenta de clase como identidad global (no tienes cuenta personal todavía que proteger).

B

Ya tienes cuenta personal configurada como global, y vas a clonar/crear el repo de clase

1. Crea la cuenta de clase (Paso 02).
2. NO toques tu git config --global — déjalo con tu identidad personal.
3. Entra a la carpeta del repo de clase y configura la identidad LOCAL (Paso 03).
4. Elige Opción A o B de autenticación (Paso 04) usando la cuenta de clase.
5. Antes del primer git push, corre los 4 chequeos del Paso 05.

C

Ya tienes varios repos personales con SSH, y no quieres tocar esa configuración

Usa Opción B (SSH con alias) del Paso 04 tal cual está escrita: tu clave y alias personales quedan intactos, y agregas un alias nuevo (github.com-clase) solo para el repo de la materia.

D

Trabajas la clase desde dos computadoras distintas

Repite el Paso 03 (identidad local) en cada máquina — es información que vive dentro de la carpeta .git de ESE repo en ESA compu, no se sincroniza sola. Si usas Opción B de autenticación, genera una clave SSH de clase distinta en cada máquina y agrega ambas a la cuenta de clase en GitHub.

08

Si ya commiteaste (o incluso pusheaste) con la cuenta equivocada

Pasa. Se puede corregir, con distinto nivel de riesgo según si ya llegó a GitHub o no.

01

Caso fácil: el commit todavía NO se subió (no hiciste push)

Corrige la identidad local (Paso 03) y después arregla el autor del último commit sin crear uno nuevo:

VS Code · Terminal integrada
# Reescribe el autor del ÚLTIMO commit con la identidad correcta ya configurada
$ git commit --amend --author="Prado Diaz Bernardo " --no-edit
02

Caso delicado: el commit YA se subió a GitHub (ya hiciste push)

Corregir esto reescribe el historial y requiere git push --force, lo que puede pisar trabajo de otra persona si el repo es compartido.

OJO

En un repo personal de la materia (solo tú escribiendo) normalmente es seguro, pero consulta con el profesor antes de forzar un push si no estás seguro. Es preferible dejar un commit con el autor "equivocado" a romper el historial sin necesidad.

Si igual necesitas hacerlo: corrige el autor con --amend como en el paso anterior, y luego:

VS Code · Terminal integrada
# Sube la versión corregida, reemplazando la que ya estaba en GitHub
$ git push --force
de dónde sale esto git-scm.com: git commit --amend
09

Checklist antes de tu primer push con la cuenta de clase

Marca cada punto — queda guardado en este navegador.

0/6
10

Tabla de referencias

Documentación oficial de Git, GitHub y VS Code — no blogs de terceros.

TemaPara quéDónde
git config Niveles global/local de configuración, identidad de commits git-scm.com/docs/git-config
SSH multi-cuenta Manejar varias cuentas de GitHub con distintas claves SSH docs.github.com — managing multiple accounts
Personal Access Tokens Autenticación por HTTPS sin usar la contraseña de la cuenta docs.github.com — PATs
Reglas de username Qué caracteres acepta GitHub en el nombre de usuario docs.github.com — username
VS Code + Git/GitHub Panel de Control de código fuente, cuentas, Publish to GitHub code.visualstudio.com/docs/sourcecontrol