GitHub

Propósito de la clase

Que el estudiante comprenda cómo utilizar GitHub como plataforma para alojar repositorios remotos, sincronizar un proyecto local con uno remoto y documentar técnicamente un proyecto mediante un archivo README.md.

Aprendizaje esperado

Al finalizar la clase, el estudiante será capaz de:

  • Crear una cuenta en GitHub
  • Crear un repositorio remoto
  • Conectar un repositorio local con uno remoto
  • Utilizar los comandos push y pull
  • Elaborar un README.md con información técnica básica del proyecto
  • Publicar correctamente un proyecto y comprobar la sincronización entre entorno local y remoto

Introducción

Git permite llevar el control de versiones local de un proyecto, mientras que GitHub permite almacenar ese proyecto en la nube mediante un repositorio remoto.

Esto hace posible:

  1. respaldar avances,
  2. compartir proyectos,
  3. colaborar con otras personas,
  4. recuperar cambios,
  5. demostrar evidencia técnica del desarrollo de un sistema.

En esta unidad no solo se busca “subir archivos”, sino comprender la relación entre un repositorio local y un repositorio remoto.

1. ¿Qué es GitHub?

GitHub es una plataforma en línea que permite alojar repositorios Git en internet.

Diferencia entre Git y GitHub

Git
Sistema de control de versiones instalado en la computadora del usuario.
GitHub
Servicio web que permite almacenar, consultar y compartir repositorios Git de manera remota.
Repositorio local
Carpeta del proyecto en la computadora del usuario, controlada por Git.
Repositorio remoto
Copia del repositorio alojada en GitHub.

2. Conceptos clave de la clase

Repositorio remoto
Es el repositorio que se encuentra publicado en GitHub y sirve como punto de sincronización entre uno o más equipos.
Sincronización
Es el proceso de enviar o traer cambios entre el repositorio local y el remoto.
README
Es un archivo de documentación, normalmente llamado README.md, que describe de forma técnica y general el proyecto.
Push
Envía cambios del repositorio local al remoto.
Pull
Trae cambios del repositorio remoto al local.

3. Requisitos previos

Antes de iniciar esta clase, el estudiante debe contar con:

  1. una computadora con Git instalado,
  2. Sublime Text instalado,
  3. una carpeta de proyecto local ya creada,
  4. conexión a internet,
  5. navegador web,
  6. una cuenta de correo electrónico activa.

Si el alumno aún no tiene un proyecto, puede usar una carpeta sencilla con archivos como index.html, estilos.css, script.js o cualquier práctica anterior.

4. Creación de cuenta en GitHub

  • Paso 1. Ingresar al sitio de GitHub

El alumno debe entrar al sitio oficial de GitHub desde su navegador.

  • Paso 2. Registrarse

Debe capturar:

  1. correo electrónico,
  2. contraseña,
  3. nombre de usuario.
  • Paso 3. Verificar la cuenta

GitHub puede solicitar una verificación por correo o un reto de seguridad.

Recomendaciones para el nombre de usuario:

  1. usar un nombre profesional,
  2. evitar nombres ofensivos o poco formales,
  3. procurar que sea fácil de identificar.

Ejemplos:

  1. irving-dev
  2. juanperez-db
  3. maria-programacion

La cuenta de GitHub funcionará como identidad digital del estudiante en proyectos tecnológicos.

  • 5. Creación de repositorio remoto

Un repositorio remoto se crea directamente desde GitHub.

Elementos que se deben definir al crearlo

  • Nombre del repositorio: Nombre del proyecto en GitHub.
  • Descripción: Texto breve que explique el propósito del proyecto.
  • Visibilidad: Puede ser público o privado.
  • Inicialización: GitHub puede crear archivos iniciales como README, .gitignore o licencia.

Si el alumno ya tiene un repositorio local creado con archivos y commits, lo más recomendable es crear el repositorio remoto vacío, para evitar conflictos innecesarios al inicio.

Ejemplo de nombre y descripción

  • Nombre del repositorio: practica-python-basica

  • Descripción: Proyecto escolar con ejercicios básicos de programación en Python

  • 6. Conexión entre repositorio local y remoto

Cuando el proyecto ya existe en la computadora, se debe enlazar con el repositorio creado en GitHub.

Relación local ↔ remoto

flowchart LR
    A[Proyecto local en la computadora] --> B[Git]
    B --> C[Repositorio remoto en GitHub]
    C --> B

Comandos básicos de conexión

git remote add origin https://github.com/USUARIO/REPOSITORIO.git
git branch -M main
git push -u origin main

Explicación

git remote add origin
Agrega la dirección del repositorio remoto y la identifica con el nombre origin.
git branch -M main
Renombra la rama principal local a main.
git push -u origin main
Envía el contenido local a GitHub y deja configurado el seguimiento entre la rama local y la remota.
  • 7. Flujo básico de trabajo con GitHub

El flujo más común será:

  1. Crear o modificar archivos localmente.
  2. Guardar cambios con Git mediante add y commit.
  3. Enviar cambios al repositorio remoto con push.
  4. Recuperar cambios remotos con pull cuando sea necesario.

Esquema general

flowchart TD
    A[Editar archivos] --> B[git add]
    B --> C[git commit]
    C --> D[git push]
    D --> E[Repositorio en GitHub]
    E --> F[git pull]
    F --> A
  • 8. Comandos principales de la clase

a) Verificar estado del proyecto

git status

Muestra los archivos modificados, listos para commit o pendientes de seguimiento.

b) Agregar archivos al área de preparación

git add .

Agrega todos los cambios actuales.

c) Crear un commit

git commit -m "Agrega estructura inicial del proyecto"

Registra un punto de control con un mensaje técnico.

d) Enviar cambios a GitHub

git push

Sube los commits locales al repositorio remoto.

e) Traer cambios desde GitHub

git pull

Descarga y fusiona cambios desde el repositorio remoto.

  • 9. README y descripción de proyecto

El archivo README.md es la portada técnica del proyecto.

¿Para qué sirve?

  1. explicar de qué trata el proyecto,
  2. indicar su objetivo,
  3. describir tecnologías usadas,
  4. documentar estructura y uso,
  5. mostrar evidencia de formalidad técnica.

Ejemplo de README técnico

# Sistema de Registro Escolar

## Descripción
Proyecto escolar desarrollado para practicar el control de versiones con Git y GitHub.

## Objetivo
Administrar y publicar un proyecto local en un repositorio remoto.

## Tecnologías utilizadas
- HTML
- CSS
- JavaScript
- Git
- GitHub

## Estructura del proyecto
- `index.html`
- `css/estilos.css`
- `js/script.js`

## Autor
Irving

## Versión
1.0

Un buen README.md permite que cualquier persona entienda rápidamente qué hace el proyecto y cómo está organizado.

  • 10. Descripción del proyecto en GitHub

Además del README, GitHub permite agregar una descripción breve al repositorio.

Conclusión

GitHub complementa el uso de Git al permitir que un proyecto se publique, respalde y comparta en línea. La sincronización entre repositorio local y remoto es una competencia básica para cualquier estudiante de informática o desarrollo de software. Además, el README.md convierte un conjunto de archivos en un proyecto técnicamente presentable.

Publicar un proyecto en GitHub no solo demuestra conocimiento técnico, también evidencia orden, documentación y buenas prácticas de desarrollo.


Actividades

Publicación de un proyecto

Supongamos que el alumno ya tiene una carpeta llamada mi_proyecto.

  • Paso 1. Entrar a la carpeta
cd mi_proyecto
  • Paso 2. Inicializar Git, si aún no está inicializado
git init
  • Paso 3. Agregar archivos
git add .
  • Paso 4. Crear el primer commit
git commit -m "Versión inicial del proyecto"
  • Paso 5. Conectar con GitHub
git remote add origin https://github.com/USUARIO/mi_proyecto.git
git branch -M main
git push -u origin main
  • Paso 6. Verificar en GitHub

Revisar que:

  1. aparezcan los archivos,
  2. se muestre el README.md,
  3. exista historial de commits,
  4. el repositorio tenga nombre y descripción correctos.

Evidencias de sincronización correcta

Para demostrar que la sincronización se realizó correctamente, el estudiante debe demostrar que el proyecto local realmente quedó enlazado y sincronizado con GitHub.

  1. Verificar conexión con el repositorio remoto
git remote -v

Resultado esperado

Debe aparecer la URL de GitHub.

Ejemplo:

origin  https://github.com/usuario/repositorio.git (fetch)
origin  https://github.com/usuario/repositorio.git (push)

Si aparece origin, el repositorio local está conectado al remoto.

  1. Verificar estado del repositorio
git status

Resultado esperado

On branch main
nothing to commit, working tree clean

Indica que no hay cambios pendientes y todo está sincronizado localmente.

  1. Verificar sincronización con GitHub
git push

Resultado esperado

Everything up-to-date

Significa que no hay cambios pendientes por subir; el repositorio local y remoto están sincronizados.

  1. Verificar actualización desde remoto
git pull

Resultado esperado

Already up to date.

Confirma que el repositorio local ya tiene los últimos cambios del remoto.

  1. Verificación visual en GitHub
  • El repositorio existe en GitHub
  • Los archivos están visibles
  • El README.md se muestra correctamente
  • Aparece al menos un commit

Errores comunes

Error 1.

Repositorio remoto ya contiene archivos iniciales

Ocurre cuando el repositorio en GitHub fue creado con README y el local ya tenía historial distinto.

Posible solución

Realizar primero:

git pull origin main --allow-unrelated-histories

y después resolver la integración si fuera necesario.

Error 2.

No existe commit inicial

Si se intenta hacer push sin commits, Git no tendrá qué enviar.

Solución

Crear al menos un commit antes de usar push.

Error 3.

URL remota incorrecta

Si la dirección del repositorio está mal escrita, Git no podrá conectar.

Verificación

git remote -v

Error 4.

Rama principal distinta

Algunos proyectos pueden usar master y otros main.

Verificación

git branch

Error 5.

README no aparece

Puede deberse a que no se agregó el archivo al commit.

Solución

git add README.md
git commit -m "Agrega README del proyecto"
git push

Actividades

Preguntas de repaso

  1. ¿Qué diferencia hay entre Git y GitHub?
  2. ¿Qué es un repositorio remoto?
  3. ¿Para qué sirve el comando git push?
  4. ¿Para qué sirve el comando git pull?
  5. ¿Qué función cumple el archivo README.md?
  6. ¿Qué evidencia demuestra que un proyecto sí quedó sincronizado?
  7. ¿Qué comando permite verificar la URL del repositorio remoto?
  8. ¿Por qué es importante escribir mensajes técnicos en los commits?