Tema 10: Fork y clonación: dos copias distintas
Un fork es una copia de un repositorio alojada bajo otra cuenta en un servicio como GitHub. Es útil cuando quieres proponer cambios en un proyecto donde no puedes escribir directamente. El servicio conserva la relación entre el repositorio original y tu copia.
Una clonación crea una copia en tu ordenador. Un fork crea una copia en el servicio. Son acciones diferentes y pueden combinarse: primero haces el fork en GitHub y después clonas la URL de tu fork. Así origin apuntará a tu copia, no al proyecto original.
Git no incluye un comando estándar git fork. En GitHub real se usa la acción Fork de la página del repositorio. El laboratorio representa esa acción con el botón «Crear fork». Solo crea una copia ficticia en memoria. Luego practicas clone y remote -v, que sí son comandos de Git.
Comprueba siempre el propietario de la URL. equipo/proyecto representa el original y alumno/proyecto representa tu fork en estas prácticas. Tener un fork no actualiza automáticamente todas sus versiones cuando cambia el original. La colaboración y la actualización desde el original llegarán más adelante.
Después de clonar tu fork puedes editar, preparar y confirmar como en los temas anteriores. Esas versiones siguen siendo locales hasta que aprendas y ejecutes el envío del siguiente tema.
Comandos para probar #
1git clone https://github.com/alumno/proyecto.git 2git remote -v 3git log --oneline
Error que conviene evitar #
Clonar el original después de crear un fork y dar por hecho que origin apunta a la copia propia. Revisa siempre la URL.
Laboratorio local #
Prueba los comandos y observa qué cambia. Puedes reiniciar sin guardar una entrega. Los retos evaluables y el cuestionario están en las actividades de este tema.
Git / práctica local
Tu copia en GitHub
Acciones de GitHub simulado
Estas acciones solo cambian el laboratorio; no contactan con GitHub.
Aplicar edición cambia el archivo; git add lo prepara.
Historial de commits
Cada punto representa una versión guardada.
Comparar trabajo, índice y HEAD
Trabajo
(archivo ausente)
Índice (staging)
(archivo ausente)
HEAD
(archivo ausente)
TERMINAL
Sesión local preparada. Escribe help para consultar los comandos de este tema.
Comandos disponibles y límites
git --version · git config --global <clave> [valor] git init · git status git add <archivo | .> · git commit -m "mensaje" · git log git log --oneline · git switch <rama> (antes: checkout) git restore [--staged] <archivo> · git commit --amend [-m "mensaje" | --no-edit] git switch --detach <commit> · HEAD · HEAD~1 git diff [--staged | <commit> <commit>] git remote [-v] · git remote add <nombre> <URL> · git remote get-url <nombre> · git remote set-url <nombre> <URL> git clone <URL> help · clear
Sesión en memoria: recargar descarta la práctica. Doscientas acciones como máximo. Dos archivos editables de hasta 250 líneas. El modelo no ejecuta comandos reales ni realiza conexiones externas. diff muestra contenido anterior y posterior por archivo.
Resumen
- La copia alojada conserva relación con el original.
- Es una operación distinta de crear un fork.
- Su dirección será la URL que clonaste.
- Clonar el original después de crear un fork y dar por hecho que origin apunta a la copia propia. Revisa siempre la URL.