Está en la página 1de 22

Taller Git

Por qué Git?


Situación 1
Somos freelancers y tenemos que hacer una página web. Donde dejamos el código que vamos
haciendo?

Situación 2
Somos un equipo de programación, y tenemos que entre todos hacer una página web. Cómo
programamos todos juntos el mismo proyecto?
Qué es Git?
+ Git es DVCS (Sistema de Control de Versiones
Distribuido) más usado.

+ Fue creado en 2005 por Linus Torvalds (creador del


kernel de Linux)
+ Es de código libre

+ Muy performante

- Un poco difícil de dominar


Qué es Git?

Git es un programa que corre en nuestras computadoras. Cuando lo inicializamos en una carpeta, este crea
una carpeta .git y empieza a monitorear nuestros archivos.

Para esto git maneja nuestros archivos en 3 directorios en nuestra computadora (Local)
Qué es Git?

Git es un programa que corre en nuestras computadoras. Cuando lo inicializamos en una carpeta, este crea
una carpeta .git y empieza a monitorear nuestros archivos.

Para esto git maneja nuestros archivos en 3 directorios en nuestra computadora (Local)
Como usar git?

Git se instala como cualquier programa.


https://git-scm.com/downloads

Configurar quién soy para que aparezca mi nombre en los cambios que hago

> git config — global user.name “Diego Raffo”


> git config — global user.email diego@alkemy.org

Inicializar un repositorio en una carpeta

> git init

O bien podemos traernos un repositorio de algún host de git, como Github, Bitbucket, Gitlab, etc

> git clone https://github.com/twtrubiks/Git-Tutorials.git


Como usar git?

Saber el estado de mi repositorio. Tengo archivos nuevos? Tengo archivos listos para hacer un commit?

> git status

Poder ver el historial de cambios


> git log

Preparar (agregar) archivos para agregar al historial


> git add file1 file2 file3

O agregar TODO lo que tenga modificado


> git add -A

O si aceptan un consejo para no agregar cambios que no querín


> git add -p
Como usar git?

Guardar en el historial todos los cambio que prepare, con un mensaje para que se entiendan los cambios
> git commit -m’Texto donde se explica brevemente los cambios que se hicieron’

Subir los cambios al repositorio remoto


> git push origin master
(master puede ser reemplazado con el nombre de una rama, lo veremos más adelante)

Borrar archivos de de git


> git rm file1 file2 file3
Probemos hasta acá
Branches
Como usar git?

Una branch es una nueva copia del proyecto. Es una ramificacion del hilo donde se estaba trabajando

Para crear una rama


> git branch nombreDeMiRama

Para moverme a una rama


> git checkout nombreDeMiRama

Para crear y posicionarme en una nueva rama


> git checkout -b nombreDeMiRama

Una vez creada una rama, o cuando me posiciono en una rama distinta, el flujo de trabajo es el mismo.
Add, Commit y Push
Como juntar ramas?

Cuando quiero juntar el código de mi rama con la rama principal tenemos que hacer un merge o rebase
Como juntar ramas?

Pararse en el branch donde quiero que se junte mi codigo y luego hacer merge
> git checkout master
> git merge nombreDeMiRama

Si hubiera algún problema con el merge, nos damos cuenta haciendo git status. De haber un problema,
podemos anularlo haciendo
> git merge --abort

Si hay un problema y lo sabemos resolver, arreglamos el codigo y luego


> git add nombreDelArchivoQueArregle1 nombreDelArchivoQueArregle2 etcétera
> git commit -m ‘mensaje del commit’
que pasa cuando dos ramas modifican el mismo archivo?
Como resolver conflictos?

Si hay conflictos, se tienen que arreglar en mi rama, no en la rama destino.


Pull Request

Por suerte los repositorios de git tienen herramientas que nos van a ayudar a detectar conflictos, y nos van
a ahorrar hacer muchos merge.

Al terminar de desarrollar mi código, en lugar de hacer merge, desde Bitbucket vamos a hacer una pedido
para que se junte el código. Indicaremos las ramas destino y fuentes, y si hay conflictos la herramienta nos
va a avisar.

En esta etapa se realiza el code-review por parte del mentor. De estar todo bien, desde la herramienta se
mergean las ramas. De haber conflicto, haremos merge desde nuestra rama, arreglaremos los conflictos, y
haremos push del nuevo código.
Flujo de trabajo
Flujo de trabajo

Master: Rama donde está el código que está en producción.

Development: Rama donde todos los desarrolladores mezclan su código. Solo cuando esta rama está
estable y sin errores es que se mergea a Master y se deploya el proyecto.

Features: Estas son las ramas que cada desarrollador usará, en general se usa una distinta para cada ticket,
siempre con un nombre descriptivo.
Últimos tips

Siempre hacer pull antes de hacer git branch

Hacer git add -p para evitar subir código no deseado

Nombres de commits en inglés, y con textos que ayuden a entender los cambios.

Commits pequeños. Es preferible muchos commits pequeños con buenos nombres que uno solo con
muchos cambios.

Si hay un conflicto y no se resuelve de manera obvia, pedir ayuda al autor del cambio con el que se entró
en conflicto.

Nunca hacer git push -f


Usar en cambio git push --force-with-lease
Links
Git - La guía sencilla
http://rogerdudler.github.io/git-guide/index.es.html

Pro Git book:


https://git-scm.com/book/en/v2

Try git:
https://try.github.io

También podría gustarte