Curso 2024-25 - IES El Rincón
Proyecto mantenido por ichigar
https://github.com/usuario/proyecto-compartido
Usuario1 y Usuario2 clonan el repositorio desde GitHub usando VS Code y lo abren:
Usuario1 crea una nueva rama llamada feature/usuario1
para trabajar en una nueva funcionalidad:
git checkout -b feature/usuario1
Nota: una rama es una versión independiente del proyecto donde los desarrolladores pueden trabajar en nuevas funcionalidades sin afectar el código principal.
Usuario2 también crea una nueva rama llamada feature/usuario2
para sus propios cambios:
git checkout -b feature/usuario2
archivo1.html
le añade contenido y luego guarda los cambios.Añade y confirma sus cambios:
git add archivo1.html
git commit -m "Añadir nueva funcionalidad por Usuario1"
Nota: El comando git add añade los cambios al área de preparación, y git commit guarda esos cambios con un mensaje descriptivo.
Envía la rama al repositorio remoto:
git push origin feature/usuario1
Nota: Push envía los cambios locales al repositorio en GitHub para que otros puedan verlos y trabajar con ellos.
archivo1.html
le añade contenido y guarda los cambios.git add archivo1.html
git commit -m "Actualizar archivo2 por Usuario2"
git push origin feature-usuario2
feature/usuario1
a main
:
feature/usuario1
.Nota: Un Pull Request es una solicitud para que otros revisen los cambios hechos en una rama antes de fusionarlos con la rama principal (main
).
feature/usuario2
:
feature-usuario1
ahora están en main
.Nota: Fusionar significa combinar los cambios de una rama con otra.
archivo1.html
también fue actualizado por Usuario1.Nota: Un conflicto ocurre cuando dos ramas tienen cambios contradictorios en las mismas líneas de un archivo.
main
que ya tiene los cambios de Usuario1:
git checkout main
git pull origin main
git checkout feature/usuario2
git merge main
Nota: Pull trae los cambios más recientes del repositorio remoto a la rama local para mantenerla actualizada. Y git merge main intenta combinar los cambios de la rama main en la rama actual.
archivo1.html
. Usuario2 los resuelve editando el archivo.Después de resolver los conflictos, confirma los cambios:
git add archivo1.html
git commit -m "Resolver conflictos entre feature-usuario2 y main"
git push origin feature-usuario2
main
.git checkout main
git pull origin main
Esto asegura que ambos usuarios tengan la versión más actualizada del proyecto después de las fusiones.
Cómo los usuarios no necesitan las ramas las pueden eliminar ejecutando.
git branch -d feature/usuario1
git branch -d feature/usuario2
main
.Esta simulación muestra un flujo básico de trabajo colaborativo en GitHub utilizando VS Code, permitiendo a los usuarios trabajar de forma organizada y evitar sobrescribir el trabajo del otro.
Tipo de Rama | Convención de Nombres | Descripción | Ejemplos |
---|---|---|---|
Rama Principal | main o master |
Rama principal y estable del proyecto; generalmente contiene código listo para producción. | main , master |
Rama de Desarrollo | develop |
Rama para la integración de nuevas características antes de fusionarlas en main . |
develop |
Rama de Características | feature/nombre-de-la-caracteristica |
Utilizada para desarrollar nuevas funcionalidades. | feature/login-page , feature/user-profile |
Rama de Corrección | bugfix/nombre-del-bug |
Usada para corregir errores menores o problemas específicos. | bugfix/fix-login-bug , bugfix/ui-alignment |
Rama de Soporte | hotfix/nombre-del-hotfix |
Para aplicar correcciones urgentes y críticas en main o master . |
hotfix/security-patch , hotfix/critical-bug |
Rama de Pruebas | release/nombre-de-la-version |
Preparación de nuevas versiones; pruebas finales antes de fusionar en main . |
release/v1.0.0 , release/2.1.5 |
Rama Experimental | experiment/nombre-del-experimento |
Para pruebas rápidas o ideas no listas para producción. | experiment/new-idea , experiment/test-feature |
Rama de Documentación | docs/nombre-del-documento |
Para actualizaciones o mejoras en la documentación del proyecto. | docs/api-update , docs/readme-enhancement |
Rama de Refactorización | refactor/nombre-del-refactor |
Usada para reestructurar y mejorar el código o la organización de archivos sin cambiar su funcionalidad. | refactor/project-structure , refactor/code-cleanup |