O documento discute métodos para organizar um repositório Git, incluindo commits bem formatados, uso de branches e tags semânticas de acordo com a especificação SemVer, e a abordagem git-flow para gerenciar o ciclo de vida do projeto.
GIT: O Commit,o Fluxo e a Tag
Métodos para um bom repositório
André Gumieri <andre.gumieri@gumini.com.br>
2.
Why, God, WHY!?
1.Bater o olho e já saber de tudo
2. Entender os porquês por trás das modificações
3. Rollbacks nunca foram tão fáceis
4. Padrão = Pensar menos
3.
$ git clonegit@github.com:guminidigital/projeto-deus-me-livre.git
A vida depois do clone
• Organiza ociclo de vida do projeto no GIT
• Fica fácil de identificar a situação do repositório
• Tem bastante material on-line
• Todo mundo usa, recuse imitações
MASTERDEVELOPFEATURES RELEASE HOTFIX
-Máquina do DEV
- Pequenos recursos
- Nasce de develop
- Trilha principal
- Sempre a frente
da master
- Aqui não se faz commit
- Trilha pré-produção
- QA
- Ambiente de homolog
- Trilha de produção
- Aqui não se faz commit
- Ambiente de produção
- Sempre com TAG
de versão
- Ajustes da versão em
produção
- Nasce da master
16.
MASTERDEVELOPFEATURES RELEASE HOTFIX
createbranch
merge nas trilhas fixas
merge de atualização
LEGENDA
1.0.0
1.0.1
1.0.0-rc1
1.0.0-rc2
1.1.0-rc1
1.1.0
1.1.0-rc2
release/1.0.0
release/1.1.0
hotfix
Aqui é sóa descrição
E aqui é o ~textão~ que vai explicar
tintin por tintin o que foi feito nesse
commit organizadão!
Aqui tem outro parágrafo! Essa quebra de
linha extra aí deixa tudo mais claro.
Aqui é só a descrição
E aqui é o ~textão~ que vai explicar
tintin por tintin o que foi feito nesse
commit organizadão!
Aqui tem outro parágrafo! Essa quebra de
linha extra aí deixa tudo mais claro.
27.
Aqui é sóa descrição
E aqui é o ~textão~ que vai explicar
tintin por tintin o que foi feito nesse
commit organizadão!
Aqui tem outro parágrafo! Essa quebra de
linha extra aí deixa tudo mais claro.
Aqui é só a descrição
E aqui é o ~textão~ que vai explicar
tintin por tintin o que foi feito nesse
commit organizadão!
Aqui tem outro parágrafo! Essa quebra de
linha extra aí deixa tudo mais claro.
SEPARADÃO
WINS!
28.
O motivo dessaregra pode até parecer frescura de alguém cagando regra, mas a real é que ninguém gosta de ler texto com umas puta linhas longas
Mensagem e corpo devem ser curtos.
~70 caracteres é um bom tamanho.
Passou disso, quebra a linha.
Deixa eu escreverdo meu jeito.
Não me enche o saco.
Padrão = Pensar menos.
36.
Precisa ser curto,mas tem que falar tudo.
A mensagem deve ser imperativa.
O commit fala o que fazer quando for aplicado.
37.
A mensagem decommit deve completar a frase
Quando aplicado, este commit…
... Muda cor dos links
... Torna dinâmica a página de quem somos
... Resolve #123: Quebra de layout nos serviços
... Adiciona página de contato
... Altera a URL de Serviços
... Atualiza o banco de dados
... Corrige tamanho do box de contato
38.
Parece bizarro. Maso GIT mesmo faz isso:
If applied, this commit will…
... Merge branch ‘staging’ into develop
... Revert "Add the thing with the stuff"
39.
Commits em inglês,“pode to be”?
if (openSource || clienteGringo || padraoDoRepo==‘en’) {
lang = ‘en-US’;
} else {
lang = ‘pt-BR’;
}
4
MAJOR MINOR PATCH
25. .Mudanças que não
mantém compatibilidade
com a versão anterior
Release de pacote de
features em produção
Correções do software
já em produção
45.
2 5.
E seeu quiser fazer tag de homologação?
-rc1
Conheça o release candidate
46.
$ git pushorigin 1.0.0-rc1
$ git tag 1.0.0-rc1
Tag no último commit
$ git tag 1.0.0-rc1 f84e7dcbbd3da416c8b19e5ddb8b05deb084b57b
Tag em um commit específico
Assim como branchs, tags são locais
47.
1.1.0-rc1
A tag nãose relaciona com o branch,
apenas com o commit.
1.0.0
1.0.1
branch-a branch-b branch-c
48.
$ git clonegit@github.com:guminidigital/projeto-vem-ni-mim.git
A nova vida depois do clone
$ git log-- arquivo.js
Por que modificaram tal coisa no arquivo.js?
52.
commit 7c8f92ea525af7a5d65cb2f5a4ea20ee75f1575f
Author: WalterWhite <wwhite@gmail.com>
Date: Mon Jul 25 19:55:22 2016 -0300
Modifica tal coisa que quebrava negócio
Quando negócio se comportava de tal forma,
tal coisa gerava incompatibilidade e fazia
negócio quebrar.
Tal coisa foi substituido por treco para
solucionar o problema.
commit 87ba74f4b29cdc61a0a02e75120a0f3d50cca627
Author: Jesse Pinkman <yo_bitch@outlook.com>
Date: Mon Jul 25 19:55:14 2016 -0300
Fix #123: Cor de tal coisa em vermelho
commit ff393e464f5e6bbef30c5674abe17af8385215f7
Author: Jesse Pinkman <yo_bitch@outlook.com>
Date: Mon Jul 25 19:54:36 2016 -0300
Adiciona tal coisa