¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos de Git

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de contenedores14 min de lectura16 comandos

Qué vas a hacer

Git guarda el historial de una carpeta. Cada vez que haces un commit (una "foto" del trabajo), anota qué ha cambiado, quién lo ha cambiado y por qué. Un servidor como Gitea, GitHub o GitLab guarda una copia de ese historial, para que otras personas puedan verla y añadir cosas.

En esta lección creas un repositorio (la carpeta con su historial) en tu propio servidor Gitea. Después haces una carpeta en tu ordenador con un archivo dentro, lo guardas con un commit y lo subes al servidor con un push (enviar).

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra de la parte superior de esta lección y espera hasta que diga que está en marcha. Cada botón Ejecutar de abajo escribe su comando en el terminal de tu laboratorio, uno detrás de otro y en la misma sesión. Para verlos, o para escribir los tuyos, pulsa Abrir el terminal (pestaña nueva) en la barra.

1. Crea un repositorio en Gitea

En la barra del laboratorio, pulsa Gitea para abrirlo en una pestaña nueva. Después:

  1. Pulsa Sign In (iniciar sesión), arriba a la derecha, y entra como student con la contraseña student.
  2. Pulsa +, arriba a la derecha, y luego New Repository (nuevo repositorio).
  3. Ponle el nombre my-first-repo. Deja sin marcar Initialize Repository, para que empiece vacío.
  4. Pulsa Create Repository (crear repositorio).

Gitea muestra un repositorio vacío y los comandos para llenarlo. Eso es lo que haces en el resto de la lección, paso a paso.

2. Dile a Git quién eres

Cada commit anota quién es su autor. Git te pide un nombre y un correo electrónico una sola vez, y --global los conserva para todos los repositorios de este ordenador. Ejecuta los dos comandos.

Comando
git config --global user.name "Student"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
git config --global user.email "[email protected]"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

3. Crea una carpeta para el proyecto

mkdir crea una carpeta llamada my-first-repo dentro de tu carpeta personal. Tiene el mismo nombre que el repositorio de Gitea. cd entra en ella. Todos los comandos siguientes se ejecutan dentro de esa carpeta.

Comando
mkdir -p ~/my-first-repo

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
cd ~/my-first-repo

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

4. Conviértela en un repositorio

git init convierte esta carpeta en un repositorio de Git. Para ello añade una carpeta oculta, .git, donde se guardará el historial. Todavía no se ha guardado nada. Puede que Git escriba unas líneas que empiezan por hint: y hablan del nombre master. Es normal, y el paso 10 lo arregla.

Comando
git init

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

5. Crea un archivo

echo escribe una línea y > la guarda en un archivo nuevo llamado hello.txt. cat muestra lo que hay dentro del archivo.

Comando
echo "Hello, Git" > hello.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
cat hello.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

6. Pregunta a Git qué ve

git status enseña lo que ha cambiado. hello.txt está untracked (sin seguimiento): Git lo ve, pero nadie le ha pedido que lo guarde.

Comando
git status

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

7. Prepara el archivo

git add pone un archivo en el área de preparación (staging area): la lista de cambios que entrarán en el próximo commit. Ejecuta git status otra vez y verás hello.txt en "Changes to be committed" (cambios listos para el commit).

Comando
git add hello.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
git status

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

8. Haz el commit

Un commit guarda todo lo preparado como un paso del historial, con un mensaje que dice qué es. git log --oneline enseña los commits hechos hasta ahora: uno solo, con un código corto que lo identifica y tu mensaje. --no-pager escribe la lista directamente. Sin esa opción, git log abriría un visor del que se sale pulsando q.

Comando
git commit -m "Add hello.txt"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
git --no-pager log --oneline

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

9. Conéctalo con Gitea

Un remote (remoto) es otra copia del repositorio, aquí la que creaste en el paso 1. origin es el nombre que todo el mundo da al remoto principal. git remote -v muestra adónde apunta.

Comando
git remote add origin http://student:student@gitea:3000/student/my-first-repo.git

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
git remote -v

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una contraseña dentro de una dirección

Advertencia

La dirección de arriba lleva el nombre y la contraseña de la cuenta de Gitea, así que Git nunca te las pide. Eso solo es seguro en un servidor de prácticas al que solo tú puedes entrar. No pongas nunca una contraseña real dentro de una dirección: Git la pide cuando la necesita, y un servidor real como GitHub exige un token (una clave especial) en lugar de la contraseña.

10. Llama a la rama main

Los commits se hacen en una rama (branch), una línea de trabajo. Las versiones antiguas de Git llaman master a la primera rama. La mayoría de los servidores, entre ellos Gitea y GitHub, esperan ahora main. git branch -M main le pone el nombre main sea cual sea el nombre que tuviera, para que coincida.

Comando
git branch -M main

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

11. Súbelo con push

git push envía tus commits al remoto. -u origin main además recuerda que esta rama va a origin, así que la próxima vez basta con escribir git push.

Comando
git push -u origin main

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

12. Míralo en Gitea

Vuelve a la pestaña de Gitea y abre student/my-first-repo (o actualiza la página). Verás hello.txt y, a su lado, el mensaje de tu commit. Pulsa el número de commits para ver el historial.

Ahora, tú solo

Consejo

Pulsa Abrir el terminal (pestaña nueva) en la barra del laboratorio. Añade una segunda línea con echo "Second line" >> hello.txt (con dos >, para que añada en vez de reemplazar). Después usa git add, git commit y git push, y mira cómo crece el historial en Gitea.

Si se reinició el terminal, ejecuta primero otra vez el cd del paso 3 para volver a la carpeta.

Sobre este laboratorio y su código: Laboratorio de Git y Gitea: aprende clone, commit y push en un servidor Git propio

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.