Blue Flower

Guía visual de estudio · Java · Windows 11

GIT y GITHUB

Controla las versiones de tu código, organiza tus proyectos y colabora con otros desarrolladores.

Guía paso a paso Ejemplos CMD Proyectos Java
A

Git gestiona versiones. GitHub permite compartirlas.

Objetivo de aprendizaje

Crear un repositorio para una carpeta llamada Proyectos Java, registrar los cambios con Git y publicarlos en GitHub usando CMD o GitHub Desktop.

1. Nociones básicas

¿Qué es Git?

Es un sistema de control de versiones distribuido. Registra los cambios del proyecto, permite recuperar versiones, crear ramas y combinar trabajo.

Funciona en local

¿Qué es GitHub?

Es una plataforma web que aloja repositorios Git y añade herramientas de colaboración, revisión de código, incidencias y automatización.

Alojamiento y colaboración
Idea clave: Git y GitHub no son lo mismo. Git puede utilizarse sin conexión a Internet; GitHub permite alojar y compartir el repositorio remoto.

Conceptos que debes conocer

Concepto Significado
Repositorio Carpeta gestionada por Git, con archivos e historial.
Working directory Archivos actuales que editamos.
Staging area Zona donde seleccionamos los cambios que entrarán en el siguiente commit.
Commit Registro de una versión del proyecto.
Branch (rama) Línea independiente de desarrollo.
Merge Integra cambios de una rama en otra.
Remote Repositorio remoto; normalmente se llama origin.
Push Envía commits al repositorio remoto.
Pull Descarga e integra cambios del repositorio remoto.
Clone Crea una copia local de un repositorio remoto.

El flujo básico de Git

1. Working directory
Editamos archivos
 
2. Staging area
git add
 
3. Repositorio local
git commit
4. Repositorio remoto en GitHub
git push

2. Instalar y configurar en Windows 11

GitHub Desktop y Git

GitHub Desktop incluye Git para sus operaciones. Puedes empezar con la aplicación gráfica y, si quieres utilizar CMD, PowerShell o la terminal de VS Code, instala también Git para Windows.

  1. Descarga Git para Windows desde la página oficial y ejecuta el instalador.
  2. Para comenzar, mantén las opciones predeterminadas salvo que tengas una necesidad específica.
  3. Abre CMD o PowerShell y comprueba que funciona:
git --version

Configurar el autor de los commits

git config --global user.name "Nombre Apellido"
git config --global user.email "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."
git config --list

Usa un correo asociado a GitHub si quieres que los commits se vinculen a tu cuenta. No compartas contraseñas ni tokens en los comandos o archivos del proyecto.

3. Comandos esenciales de Git

Los comandos se ejecutan en CMD, PowerShell o Git Bash. En los ejemplos, las palabras entre ángulos como URL o RAMA deben sustituirse por valores reales.

git init crea un repositorio Git en la carpeta actual.

mkdir "Proyectos Java"
cd "Proyectos Java"
git init
git branch -M main

git clone URL descarga una copia de un repositorio remoto con su historial.

git clone https://github.com/USUARIO/Proyectos-Java.git

git status muestra los cambios y archivos no rastreados.

git status
git status --short

git log muestra el historial de commits.

git log
git log --oneline
git log --oneline --graph --all

git diff muestra diferencias en archivos modificados. --staged muestra lo que está preparado para el próximo commit.

git diff
git diff --staged

git add selecciona los cambios que se incluirán en el siguiente commit.

git add Main.java
git add .

git commit guarda los cambios preparados en el historial local.

git commit -m "Añadir clase principal"
Recuerda: git add prepara los cambios; git commit crea una versión local; git push publica los commits en el remoto.

git remote -v muestra los repositorios remotos configurados.

git remote -v
git remote add origin https://github.com/USUARIO/Proyectos-Java.git

git push envía commits al remoto.

git push -u origin main
git push

git pull descarga e integra cambios remotos; git fetch los descarga sin integrarlos automáticamente.

git pull origin main
git fetch origin
Si origin ya existe, no vuelvas a añadirlo. Comprueba la URL con git remote -v. Si GitHub contiene commits que no están en local, puede ser necesario integrar esos cambios antes de hacer push.

Las ramas permiten desarrollar funcionalidades separadas de la rama principal.

git branch
git branch feature/login
git switch feature/login
git switch -c feature/nueva
git switch main
git merge feature/nueva
git branch -d feature/nueva

git switch -c crea una rama y cambia a ella. git merge integra la rama indicada en la rama actual. Antes de borrar una rama, asegúrate de que ya no necesitas sus cambios.

git restore puede descartar modificaciones locales; úsalo con cuidado.

git restore Main.java
git restore --staged Main.java

El primer comando descarta cambios no preparados de ese archivo; el segundo lo retira del área de preparación, pero conserva las modificaciones en el archivo.

git revert crea un nuevo commit que revierte otro commit.

git revert HASH_DEL_COMMIT

git reset --soft HEAD~1 deshace el último commit conservando los cambios preparados.

git reset --soft HEAD~1

git stash guarda temporalmente cambios locales; git stash pop intenta recuperarlos y retirar esa entrada del stash.

git stash
git stash pop
Precaución: git reset --hard HEAD elimina cambios locales no confirmados. No lo uses si no estás seguro de que puedes perderlos.

4. Organizar la carpeta Proyectos Java

Si los proyectos forman parte de un mismo conjunto didáctico, puedes utilizar un único repositorio para toda la carpeta. Si son aplicaciones independientes con historiales o permisos distintos, puede ser mejor separarlas.

Proyectos Java/
├── 01-TiposDatos/
├── 02-EstructurasControl/
├── 03-ClasesObjetos/
├── 04-Herencia/
├── 05-Colecciones/
├── 06-JDBC-MySQL/
├── README.md
└── .gitignore

¿Qué conviene guardar?

Archivo o carpeta Recomendación
Archivos .java Sí Código fuente.
README.md Sí Documentación.
pom.xml / build.gradle Sí Configuración de dependencias y compilación.
.project / .classpath Versionar si son útiles para importar o configurar Eclipse.
*.class, bin/, target/, build/ Normalmente no Archivos generados.
Contraseñas, tokens, credenciales Nunca No subir secretos al repositorio.

Ejemplo de archivo .gitignore

# Java compilado
*.class

# Directorios de compilación
bin/
target/
build/
out/

# Temporales
*.log
.DS_Store
Thumbs.db

# Metadatos del workspace de Eclipse
.metadata/

# Configuración local y secretos
.env
*.local.properties

Ajusta el archivo según el tipo de proyecto. No ignores archivos de configuración que sean necesarios para reproducir la compilación.

5. Caso práctico: crear y publicar el repositorio

Escenario: ya tienes una carpeta con proyectos Java y quieres gestionarla como un repositorio Git y publicarla en GitHub.
1

Abrir CMD en la carpeta correcta

cd /d "C:\Users\TuUsuario\Documents\Proyectos Java"
dir

Cambia la ruta por la ubicación real. Comprueba con dir que aparecen tus proyectos.

2

Inicializar Git

git init
git branch -M main

Ejecuta git init una sola vez en la raíz de este repositorio. Si ya estaba inicializado, no hace falta repetirlo.

3

Revisar los archivos detectados

git status

Si no aparecen archivos, comprueba que estás en la carpeta correcta y que no están ignorados por .gitignore.

4

Añadir y registrar la primera versión

git add .
git status
git commit -m "Version inicial de Proyectos Java"

Antes de git add ., revisa el .gitignore y evita incluir compilados o secretos.

5

Crear el repositorio remoto

En GitHub: New repository, crea Proyectos-Java. Si ya tienes commits locales, es más sencillo crear el remoto vacío, sin README ni otros archivos iniciales.

6

Conectar y publicar

git remote add origin https://github.com/USUARIO/Proyectos-Java.git
git push -u origin main

Sustituye la URL por la de tu repositorio. Si origin ya existe, consulta git remote -v en lugar de volver a añadirlo.

Si GitHub Desktop ya creó el repositorio en esa carpeta: no vuelvas a ejecutar git init ni a añadir otro remoto sin comprobarlo. Abre la carpeta desde Repository → Show in Explorer y verifica con git status.

6. Rutina de trabajo diaria

Cada vez que termines una parte de un ejercicio o una funcionalidad:

git status
git diff
git add .
git commit -m "Añadir ejercicios de herencia"
git push

Trabaja

Edita y prueba el código en Eclipse o VS Code.

Registra

Revisa, prepara y guarda los cambios con Git.

Comparte

Envía los commits a GitHub con git push.

Si trabajas desde otro ordenador: utiliza git clone URL la primera vez. En las sesiones siguientes, ejecuta git pull antes de empezar a editar, y git push al terminar.

7. Otros comandos útiles

Comando Función Ejemplo
git show Detalles de un commit. git show HEAD
git blame Autor y commit asociado a cada línea. git blame Main.java
git ls-files Lista archivos rastreados por Git. git ls-files
git diff --stat Resumen de archivos y líneas cambiadas. git diff --stat
git tag Consulta etiquetas de versiones. git tag v1.0
git push origin v1.0 Publica una etiqueta concreta. git push origin v1.0
git rm Elimina un archivo del proyecto y registra su eliminación. git rm archivo.txt
git mv Renombra o mueve un archivo con seguimiento de Git. git mv antiguo.java nuevo.java
git clean -n Previsualiza archivos no rastreados que se borrarían. git clean -n
Atención: git clean -n solo simula. No ejecutes git clean -f sin revisar primero, ya que elimina archivos no rastreados.

8. Funciones principales de GitHub

Repositories

Alojan código, historial y documentación; pueden ser públicos o privados.

Pull Requests

Proponen integrar cambios y permiten revisar el código antes de fusionarlo.

Issues

Registran errores, mejoras, tareas y preguntas del proyecto.

README.md

Explica el objetivo, los requisitos y cómo ejecutar el proyecto.

GitHub Actions

Automatiza pruebas, comprobaciones y despliegues mediante flujos de trabajo.

Colaboración

Facilita trabajar en equipo, revisar cambios y mantener un historial común.

9. Repaso interactivo

Selecciona una respuesta para comprobar tus conocimientos.

 
 
 
 

10. Chuleta rápida

Quiero... Comando
Inicializar un repositorio git init
Ver el estado git status
Preparar cambios git add .
Crear un commit git commit -m "Mensaje"
Consultar historial resumido git log --oneline
Ver diferencias git diff
Publicar cambios git push
Obtener e integrar cambios git pull
Crear y cambiar de rama git switch -c nombre
Fusionar una rama git merge nombre