GIT: Como uma ferramenta mudou o mundo do software
William Correa
@wilcorrea
t.me/wilcorrea
lt.coop.br
phpzm.rocks
http://lattes.cnpq.br/5492287567035269
https://goo.gl/GEvAEL
~> Tópicos
O que é versionamento?
O que é Git?
O que muda?
Metodologias de colaboração
Integração com processos
Ferramentas e ecossistemas
Exemplos práticos
# O que é versionamento?
Histórico de modificações
Consistência de versões
Metadados de mudança
# Anota ae
A evolução dos softwares é totalmente dependente das ferramentas de versionamento
Sem controle dos artefatos seu projeto está fadado ao caos
# O que é Git
Ferramenta de versionamento
Criada por Linus Torvalds
--everything-is-local
# Raio-x
Branching and Merging
Small and Fast
Distributed
Data Assurance
Staging Area
Free and Open Source
Trademark
# Branching and Merging
Modelo de ramificação (branch)
A criação, fusão e exclusão dessas linhas de desenvolvimento leva segundos (merge)
# Small and Fast
Escrito em C
Criado para trabalhar para o kernel Linux
# Distributed
# Data Assurance
Blame
Timestamps
# Staging Area
# Free and Open Source
O Git é lançado sob a licença GNU General Public License versão 2.0, que é uma licença de código aberto. O projeto Git escolheu usar a GPLv2 para garantir sua liberdade de compartilhar e alterar o software livre --- para garantir que o software seja gratuito para todos os seus usuários.
# Trademark
# Mas nem tudo são flores
# Mentira...
# Anota ae
Git é um amigo poderoso para o seu dia-a-dia
Além de aprimorar a produção de software ele criou conceitos que aprimoraram a colaboração no desenvolvimento de software
# O que muda?
Descentralização
Agilidade
Open Source
# Algumas coisas mudam
# Outras não
# Mudanças de paradigmas
Não há mais um servidor
Não há mais um dono
Todos tem acesso à tudo
Colaboração nativa
Integração com os processos
# Anota ae
O Open Source agora é o dono o dono da festa
Estabelecer processos bem definidos
Entregar metodologias variadas para os times
# Metodologias de colaboração
# Centralized Workflow
Prós: É simples
Contras: É simples
# Git Feature Branch Workflow
Prós: É simples
Contras: Pouco relisiente
# Gitflow Workflow
Prós: Pau pra toda obra
Contras: Complexo
# Forking Workflow
Prós: É isolado
Contras: É isolado
# Anota ae
Os modelos de colaboração podem (leia-se devem) ser adaptados aos processos do seu time
Pull requests, merge requests, pushes, commits são documentos e ritos de passagem de conhecimento