controle de versão com git

41
Controle de versão com GIT Paulo César M Jeveaux @jeveaux jeveaux.com

Upload: paulo-cesar-m-jeveaux

Post on 28-May-2015

4.035 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Controle de versão com GIT

Controle de versão com GIT

Paulo César M Jeveaux

@jeveaux

jeveaux.com

Page 2: Controle de versão com GIT
Page 3: Controle de versão com GIT

controlar versão de código, Batman, pra que

isso?

Page 4: Controle de versão com GIT

controlar versão de código, Batman, pra que

isso?ouch!

Page 5: Controle de versão com GIT

controlar versão de código, Batman, pra que

isso?ouch!

Robin, como você controla as alterações do seu

código?

E como você controla as versões do seu produto?

E o hitórico de tudo isso?

Page 6: Controle de versão com GIT

git• Open Source

• Criado por Linus Torvalds

• Necessidade de manter o

controle de versão do

código do Kernel do Linux

• Mantido por Junio Hamano

• Para projetos P, M, G e XG

• Sistema de controle de

versões distribuído!

Page 7: Controle de versão com GIT

git• Desenvolvimento distribuído

• Rápido!

• Branches e merges sem dor

e forma simples

• Rápido!

• Eficiente e simples

• Comunidade forte

• Rápido!

Page 8: Controle de versão com GIT

alguém usa isso?

Page 9: Controle de versão com GIT

alguém usa isso?

Linux Kernel

Perl

gnome

Android

Fedora

Debian

X.org

PostgreSQL

...muitos outros

Page 10: Controle de versão com GIT

Conceitocentralizado X distribuído

Page 11: Controle de versão com GIT

repositório

dev 1

dev 2

dev 3

dev n

• repositório único e centralizado

• commit só por usuário com permissão

centralizado

Page 12: Controle de versão com GIT

repositório

dev 1

dev 2

dev 3

dev n

• repositório único e centralizado

• commit só por usuário com permissão

históricos, commits,

branches, etc

centralizado

Page 13: Controle de versão com GIT

repositório

dev 1

dev 2

dev 3

dev n

• repositório único e centralizado

• commit só por usuário com permissão

checkout no dia N

históricos, commits,

branches, etc

centralizado

Page 14: Controle de versão com GIT

repositório

dev 1

dev 2

dev 3

dev n

• repositório único e centralizado

• commit só por usuário com permissão

checkout no dia N

checkout no dia N+1diferente do dev 1

históricos, commits,

branches, etc

centralizado

Page 15: Controle de versão com GIT

repositório

dev 1

dev 2

dev 3

dev n

• repositório único e centralizado

• commit só por usuário com permissão

checkout no dia N

checkout no dia N+1diferente do dev 1

checkout no dia N+2diferente do dev 1 e 2

históricos, commits,

branches, etc

centralizado

Page 16: Controle de versão com GIT

repositório

dev 1

dev 2

dev 3

dev n

• repositório único e centralizado

• commit só por usuário com permissão

checkout no dia N

checkout no dia N+1diferente do dev 1

checkout no dia N+2diferente do dev 1 e 2

checkout no dia N+3diferente do dev 1, 2 e 3

históricos, commits,

branches, etc

centralizado

Page 17: Controle de versão com GIT

dev 1

dev 2

dev 3

dev n

• cada cópia é um repositório completo

• histórico completo e total

• commit local {on|off}line

• commits podem ser transferidos entre repositórios

de forma simples com pull ou push

distribuído

Page 18: Controle de versão com GIT

dev 1

dev 2

dev 3

dev n

• cada cópia é um repositório completo

• histórico completo e total

• commit local {on|off}line

• commits podem ser transferidos entre repositórios

de forma simples com pull ou push

uma nova cópia pode ser feita de qualquer repositório

distribuído

Page 19: Controle de versão com GIT

dev 1

dev 2

dev 3

dev n

• cada cópia é um repositório completo

• histórico completo e total

• commit local {on|off}line

• commits podem ser transferidos entre repositórios

de forma simples com pull ou push

uma nova cópia pode ser feita de qualquer repositório

distribuído

commits podem ser transferidos por todos repositórios

Page 20: Controle de versão com GIT

você pode fazer commit de qualquer lugar, até no avião!

Page 21: Controle de versão com GIT

você pode fazer commit de qualquer lugar, até no avião!

RLY?

Page 22: Controle de versão com GIT

branches

Page 23: Controle de versão com GIT

• rápido!

• muito rápido!

• branches locais baratas

• branches também podem ser remotas (github)

• merge super poderoso

• uma branch para cada feature/história/bug/etc

Page 24: Controle de versão com GIT

histórico

logs

diffs

commits

merge

pull

push

tag

Page 25: Controle de versão com GIT

stash

index

bisect

GIT-SVN

Page 26: Controle de versão com GIT

ferramentas e utilidades

Page 27: Controle de versão com GIT

o terminal é seu amigo :)

Page 28: Controle de versão com GIT

gitk

Page 29: Controle de versão com GIT

tower

Page 30: Controle de versão com GIT

... e muitas outras ferramentas

• gitnub

• qgit

• git-gui

• tortoise-git

• ...

Page 31: Controle de versão com GIT

github

Page 32: Controle de versão com GIT
Page 33: Controle de versão com GIT

comunidade em torno de código

muitos projetos open source

serve para projetos privados

funciona! funciona muito bem!

Page 34: Controle de versão com GIT

comunidade em torno de código

muitos projetos open source

serve para projetos privados

funciona! funciona muito bem!

grátis para open source

fork de maneira fácil e rápida

facilita muito a colaboração

é o queridinho na comunidade

Page 35: Controle de versão com GIT

Ruby on Rails

jQuery

Redis

node.js

reddit

curl

CakePHP

django

mongodb

Quem usa github

Page 36: Controle de versão com GIT

Servidor GIT privado

gitorious• gratuito

• open source

• pode ser usado também online como o github, também gratuito

Page 37: Controle de versão com GIT

muitas opções

• gitosis

• codebasehq

• repo.or.cz

• gitorious

• ...

Page 38: Controle de versão com GIT

Para o alto e avante

akitaonrails.com/screencasts

Page 39: Controle de versão com GIT

dúvidas?

Page 40: Controle de versão com GIT

Referências

• git-scm.org

• github.com/guides/home

• akitaonrails.com

• “Git: controle de versão de jeito certo” - por Arthur Zapparoli

Page 41: Controle de versão com GIT

Controle de versão com GIT

Paulo César M Jeveaux

@jeveaux

jeveaux.com