Curso de Git & Github

Sebastian Estupiñan Vargas


Escoge tu clase:


  1 - Básico

  2 - Básico

  3 - Intermedio


Que es Git

Software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente.

Que es GitHub

"GitHub es una plataforma de desarrollo colaborativo de software para alojar proyectos utilizando el sistema de control de versiones Git. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago."


Roadmap

Objetivo principal


Generes un proyecto, vayas salvando sus cambios y puedas viajar en el tiempo con él.

Empecemos con el contexto


1.1 Instalación

1.2 Sistemas de Control de Versiones.

1.3 ¿Qué es Git?

1.4 Arquitectura de Árbol.

1.5 Configurando GIT.

1.1 Instalación


a) Entren a http://git-scm.com

b) Escoja dependiendo de Windows, Mac, Linux

1.2 Sistemas de Control de Versiones



1.2 Sistemas de Control de Versiones


1) Registran y guardan cada modificación del proyecto en un registro. Todo lo que modificas, lo vigilan.


1.2 Sistemas de Control de Versiones


2) Te dan acceso a este registro. Con esto, puedes gestionarlo, compartirlo, colaborarlo, administrarlo, editarlo, etc.


1.2 Sistemas de Control de Versiones


3) Podrás moverte hacia atrás o hacia adelante en diferentes momentos del proyecto.

1.3 ¿Qué es GIT?



1.3 ¿Qué es GIT?




1.3 ¿Qué es GIT?



1.3 ¿Qué es GIT?


1.4 Arquitectura de árbol


1.4 Arquitectura de árbol



1.4 Arquitectura de árbol



1.4 Arquitectura de árbol



1.4 Arquitectura de árbol


1.5 Configuración


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
					

Ejercicio (70% de git)



Ejercicio (70% de git)



Ejercicio (70% de git)



Roadmap

Consejo:


¡Practica! ¡Falla! ¡Experimenta!

Empecemos con el contexto


2.1 Propuestas de proyectos

2.2 Ramas (Branches)

2.3 Fusiones (Merge)

2.1 Propuestas de Proyectos


¿Cómo puedo intervenir positivamente en el proyecto sin afectarlo?

2.2 Ramas


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.

2.2 Ramas


2.2 Ramas


2.2 Ramas


2.2 Ramas


2.2 Ramas


2.2 Ramas





2.2 Ramas


El concepto HEAD

¿En qué punto de la historia de nuestro proyecto nos encontramos?


2.2 Ramas


Practiquemos ramas

git branch [nombre]


2.2 Ramas


git log --oneline --graph --all

git config --global alias.nicelog 'log --oneline --graph --all'


2.3 Fusiones


Repitamos el proceso de la fusión


2.3 Fusiones


git checkout [branch]


2.3 Fusiones


git checkout [branch]


2.3 Fusiones


git checkout [branch]


2.3 Fusiones


Hagamos la fusión


2.3 Fusiones


Fu...


2.3 Fusiones


...sión!


2.3 Fusiones


La fusión tiene la mezcla de los cambios de ambas ramas


2.3 Fusiones


Lo mejor de ambas, establecidas por el gestor del proyecto


2.3 Fusiones


Solución de conflictos


a) Fast-Forward

b) Manual Merge


2.3 Fusiones


Solución de conflictos


Fast-Forward

Los gestores trabajaron archivos diferentes al repositorio


2.3 Fusiones


Solución de conflictos


Manual Merge

¿Qué pasa cuando 2 desarrolladores trabajan el mismo archivo en la fusión?


Curso de Git y GitHub


Duas, Preguntas, Criticas


Roadmap


Empecemos con el contexto


1) GitHub

2) Repositorios propios

3) Repositorios "forked"


GitHub


Es una plataforma social para construir proyectos web.



Workflows


Flujos de trabajo colaborativos.


Exploración: Git Clone


$ git clone [https or SSH]

$ git log (comprobar commits)


Git Clone


Git Clone


Git Clone


GitHub Workflows


1) Repositorios propios (Sólo YO)


- Ustedes son los dueños de su proyecto

- Si alguien decide participar, ustedes deciden si aceptan sus propuestas

- Sirve para guardar proyectos, regularmente personales.


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


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


2) Repositorios propios (Yo + mi equipo)


- Es lo mismo que el proceso anterior.

- Todos los cambios que hagan nuestros colaboradores lo subirán al repositorio

- Es nuestra obligación, descargar los nuevos cambios antes y después de codificar.


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 (si apenas vamos a iniciar)

$ 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


Gracias


https://github.com/sesva