Familiarizarse, entender qué es y cómo trabaja Git & GitHub
1.1 Introducción
1.2 SCV Centralizados vs SCV Distribuidos
1) Registran y guardan cada modificación del proyecto en un registro. Todo lo que modificas, lo vigilan.
2) Te dan acceso a este registro. Con esto, puedes gestionarlo, compartirlo, colaborarlo, administrarlo, editarlo, etc.
3) Podrás moverte hacia atrás o hacia adelante en diferentes momentos del proyecto.
a) Entren a http://git-scm.com
b) Escoja dependiendo de Windows, Mac, Linux
Abrir terminal, consola, bash
$ git --version
$ git config --global user.name "TU NOMBRE"
$ git config --global user.email "TU CORREO DE GITHUB"
$ git config --global color.ui true
$ git config --global --list
- $ git help
- $ git add --all
- $ git commit -m "Mensaje"
- $ git status
- $ git git log
- $ git diff
- $ git checkout
- $ git reset
Por ello, en GIT, existen las ramas, también conocidos como "branches".
Una rama es una línea alterna del tiempo, en la historia de nuestro repositorio.
Funciona para crear features, arreglar bugs, experimentar, sin afectar la versión estable, la línea principal, del proyecto.
El concepto HEAD
¿En qué punto de la historia de nuestro proyecto nos encontramos?
Practiquemos ramas
git branch [nombre]
git log --oneline --graph --all
git config --global alias.log 'log --oneline --graph --all'
Repitamos el proceso de la fusión
git checkout [branch]
git checkout [branch]
git checkout [branch]
Hagamos la fusión
Fu...
...sión!
La fusión tiene la mezcla de los cambios de ambas ramas
Lo mejor de ambas, establecidas por el gestor del proyecto
Solución de conflictos
a) Fast-Forward
b) Manual Merge
Solución de conflictos
Fast-Forward
Los gestores trabajaron archivos diferentes al repositorio
Solución de conflictos
Manual Merge
¿Qué pasa cuando 2 desarrolladores trabajan el mismo archivo en la fusión?
Con nuestro proyecto, generar 3 versiones. Una estable, una experimental y una que fusionemos.
1) GitHub & Workflows
2) Repositorios propios
3) Repositorios "forked"
Flujos de trabajo colaborativos.
¿Cómo logro que varios profesionales web trabajen sobre un mismo proyecto, sin morir en el intento?
Exploración: Git Clone
$ git clone [https or SSH]
$ git log (comprobar commits)
Git Clone
Git Clone
Git Clone
1) Repositorios propios (Sólo YO)
1) Crear un repositorio
2) Vincularlo con nuestra PC
3) Generar cambios y subirlos a GitHub
Subir cambios a GitHub
Subir cambios a GitHub
Subir cambios a GitHub
Subir cambios a GitHub
Subir cambios a GitHub
Subir cambios a GitHub
$ git init
$ git remote add origin [HTTPS or SSH]
$ git remote -v
Generamos cambios
$ git commit -am "[Mensaje]"
$ git push origin master
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Git Fetch & Git Merge
Creamos ó entramos a la carpeta de nuestro proyecto
$ git init
$ git remote add origin [HTTS or SSH]
$ git fetch origin
$ git merge origin/master
Hacen cambios
$ git fetch origin
$ git merge origin/master
$ git push origin master
3) Repositorios "forked" (De 3º's, hay gestores)
- Ustedes no son los dueños pero quieren participar en el desarrollo.
- Los dueños del proyecto le dan la visión (que commits sí y que commits no)
- Todo esto a través del concepto de Pull Request (PR)
Repositorios "forked"
Necesitamos conectar 2 repositorios.
Repositorios "forked"
Repositorios "forked"
Repositorios "forked"
Repositorios "forked"
Repositorios "forked"
Repositorios "forked"
Ciclo final - Repositorios "forked"
Repositorios "forked"
La idea es:
Repositorios "forked"
Crear ó entrar a la carpeta del proyecto
- $ git remote add origin [HTTPS ó SSH del proyecto forked]
- $ git remote add upstream [HTTPS ó SSH del proyecto "main"]
- $ git fetch upstream
- $ git merge origin/upstream
- $ git fetch origin
- $ git merge origin/master
Hacer cambios en local
- $ git fetch upstream
- $ git merge origin/upstream
- $ git push origin master
Repositorios "forked"
Si queremos, realizamos un Pull Request al proyecto principal ("main")
3.1) Crear un repositorio en GitHub y vincularlo en local.
3.2) Subir nuestro proyecto2 a nuestro repositorio "forked" en GitHub.
1) Deployment.
2) Ambientes
3) GitHub Pages.
4) Manual Deployment
"Es la manera de llevar tus proyectos al mundo"
Todas las actividades que hacen a un proyecto de software disponible para su uso
- Se pierde el código, se pierde todo
- Como no hay un SCV, el equipo puede encimar sus avances
- Si el código falla en producción, regresar al momento anterior es un caos.
SSH
Secure Shell
Autenticación - "Are you the owner?"
- Subir nuestro proyecto a través de un GitHub Pages.