Git y GitHub¶
Esta es la práctica 0-A, común a los módulos que utilizan repositorios. Aprenderás a conservar cambios, distinguir fork de clone y recibir actualizaciones sin sustituir tu trabajo. Es formativa y no genera una entrega evaluable adicional. Si ya dominas estas operaciones, demuestra la comprobación final y continúa con Codespaces como entorno de desarrollo.
Punto de partida¶
Necesitas una cuenta de GitHub y Git instalado en un entorno local. Puedes utilizar la web para las primeras operaciones y completar las comprobaciones de terminal durante la práctica 0-B. En AD trabajaremos sobre el repositorio público ad-ejemplos; en otro módulo se usa su repositorio de ejemplos.
Las direcciones con TU_USUARIO son provisionales y se sustituirán por las
reales del docente. MI_USUARIO en los comandos representa tu propia cuenta.
Entender las copias¶
Git mantiene el historial; GitHub aloja repositorios y facilita colaboración.
Un fork es otro repositorio en GitHub, vinculado al original. No es una rama.
Un clone crea una copia de un repositorio Git en tu ordenador o Codespace.
originsuele ser el remoto del repositorio que clonaste: aquí, tu fork.upstreames el nombre que daremos al remoto del maestro del docente.Un commit registra una versión local; push envía commits al remoto.
fetch recibe referencias y objetos; no integra cambios en tus archivos.
merge integra historias. pull, según su configuración, combina fetch con una integración por merge o rebase; aquí practicaremos fetch y merge separados.
Actividad
Dibuja maestro → fork → clone. Si haces un commit en el clone,
¿se modifica automáticamente el maestro? ¿Y tu fork de GitHub?
Comprobación razonada
El commit queda local. Push lo publica en el remoto elegido, normalmente tu fork. El maestro no recibe esos cambios automáticamente.
Trabajar desde el terminal¶
Abre ad-ejemplos en GitHub y usa Fork hacia tu cuenta.
Copia la URL de tu fork desde Code y clónalo. Si usas HTTPS localmente, autentícate con GitHub CLI (
gh auth loginygh auth setup-git) o el mecanismo admitido por GitHub; no uses tu contraseña de cuenta como contraseña Git.git clone https://github.com/MI_USUARIO/ad-ejemplos.git cd ad-ejemplos git remote -v git status git log --oneline -5
Comprueba que Git conoce tu identidad para commits. Si aún no está configurada, establece
user.nameyuser.emailen este repositorio; puedes usar el correonoreplyque te proporciona GitHub. No es tu contraseña.Crea una rama y un archivo
git/mi-experimento.mdcon tu explicación de fork y clone. No incluyas datos personales innecesarios.git switch -c experimento-git git status git diff git add git/mi-experimento.md git diff --staged git commit -m "docs: explica fork y clone" git push -u origin experimento-git
git diffno muestra el contenido de un archivo nuevo sin seguimiento;statuslo identifica. Después de añadirlo,diff --stagedsí lo muestra.Abre tu fork en la web, selecciona la rama y localiza el commit.
Configura el maestro. Si
upstreamya existe, comprueba su URL congit remote -ven lugar de añadirlo otra vez.git remote add upstream https://github.com/TU_USUARIO/ad-ejemplos.git git fetch upstream git log --oneline --all --graph git switch main git diff HEAD..upstream/main git merge upstream/main git push origin main
Haz el merge con el árbol limpio. Si todavía no hay novedades, explica por qué responde que ya está actualizado; repítelo cuando el docente publique un cambio. Un fetch sin novedades sigue siendo una operación válida.
Para ensayar una integración local, incorpora
experimento-gitamainy vuelve a hacer push. Distingue esa integración de recibir un cambio nuevo del docente. Si hay conflicto, revisa ambas versiones antes de resolverlo.
Alternativa desde la web¶
Puedes hacer fork, crear una rama, editar el archivo, crear un commit y comparar versiones desde GitHub. Sync fork permite incorporar actualizaciones. Esta alternativa no crea un clone local; comprueba los remotos y los comandos Git en el terminal de Codespaces durante Codespaces como entorno de desarrollo.
Comprobación final¶
Actividad
Muestra tu fork, su URL de origen, los remotos del clone, una modificación y el hash del commit. Explica qué cambió después de commit, push y fetch. No se exige un número de commits. Conserva estas comprobaciones como experimentación; la evidencia evaluable de AD va en el fork privado de FCT.
Recursos de consulta¶
Git en Wikipedia: qué es un control de versiones distribuido.
Pro Git, fundamentos: obtener un repositorio y registrar cambios.