git: o commit, o fluxo e a tag

Post on 16-Feb-2017

192 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

GIT: O Commit, o Fluxo e a TagMétodos para um bom repositório

André Gumieri <andre.gumieri@gumini.com.br>

Why, God, WHY!?

1. Bater o olho e já saber de tudo2. Entender os porquês por trás das modificações3. Rollbacks nunca foram tão fáceis4. Padrão = Pensar menos

$ git clone git@github.com:guminidigital/projeto-deus-me-livre.git

A vida depois do clone

$ git branch -a

Em qual branch devo trabalhar?

dev dev_20150513 dev_new joao_dev_2012 fix fix2 homolog_marco_2016* master

$ git log -- arquivo.js

Por que modificaram tal coisa no arquivo.js?

commit 7c8f92ea525af7a5d65cb2f5a4ea20ee75f1575fAuthor: Walter White <wwhite@gmail.com>Date: Mon Jul 25 19:55:22 2016 -0300

Solicitações cliente

commit 87ba74f4b29cdc61a0a02e75120a0f3d50cca627Author: Jesse Pinkman <yo_bitch@outlook.com>Date: Mon Jul 25 19:55:14 2016 -0300

QA

commit ff393e464f5e6bbef30c5674abe17af8385215f7Author: Jesse Pinkman <yo_bitch@outlook.com>Date: Mon Jul 25 19:54:36 2016 -0300

.

commit c5e33c6dfa19df5f32d5b129d06d04df9e971041Author: Joey Tribbiani <jtribbiani@yahoo.com>Date: Mon Jul 25 19:54:28 2016 -0300

Ajustes

commit f84e7dcbbd3da416c8b19e5ddb8b05deb084b57bAuthor: Walter White <wwhite@gmail.com>Date: Mon Jul 25 19:54:15 2016 -0300

Ajustes na home

$ git tag

Deu ruim! Pra qual versão faço rollback?

teste_tag prod-20120305 prod-20120305-2 tira-jquery

git-flowOrganizando a zona com

• Organiza o ciclo 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

5 TRILHAS PRINCIPAIS

MASTERDEVELOPFEATURES RELEASE HOTFIX

2 FIXAS

MASTERDEVELOPFEATURES RELEASE HOTFIX

3 DE APOIO

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

MASTERDEVELOPFEATURES RELEASE HOTFIX

create branch

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

Commit bem formatadoDeixando tudo bonito com um

Fix #123: Altera cor do botão finalizar

Foi adicionada uma classe modificadora .finalizar dentro de .btn

Mensagem

Corpo

corrige cor dos links. remove cores do sass

Texto começa com letra maíuscula. Commits também.

Corrige cor dos links. Remove cores do SASS

Deixar uma linha de espaço entre a mensagem e o corpo. E uma linha de espaço entre parágrafos.

SEPARADÃO TUDO JUNTO

3

2

1

Aqui é só a descrição

E aqui é o ~textão~ que vai explicartintin por tintin o que foi feito nessecommit organizadão!

Aqui tem outro parágrafo! Essa quebra delinha extra aí deixa tudo mais claro.

Aqui é só a descriçãoE aqui é o ~textão~ que vai explicartintin por tintin o que foi feito nessecommit organizadão! Aqui tem outro parágrafo! Essa quebra delinha extra aí deixa tudo mais claro.

Aqui é só a descrição

E aqui é o ~textão~ que vai explicartintin por tintin o que foi feito nessecommit organizadão!

Aqui tem outro parágrafo! Essa quebra delinha extra aí deixa tudo mais claro.

Aqui é só a descriçãoE aqui é o ~textão~ que vai explicartintin por tintin o que foi feito nessecommit organizadão! Aqui tem outro parágrafo! Essa quebra delinha extra aí deixa tudo mais claro.

SEPARADÃOWINS!

O motivo dessa regra 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.

O Que, Como e Por quê.Os melhores commits dizem

Por quê precisa deste commit?

O que este commit faz?

Como este commit resolve o problema?

Corrige falhas na home

Durante o desenvolvimento, foram encontradasfalhas graves na home:

- Menu estava desalinhado- Delay do slider estava rápido- Fonte é Futura, não helvetica

O que?

Por quê?

$ git show 9d32dac08c47f52a2b15a2b4298865448efe5bcfdiff --git a/menu.less b/menu.less@@ -129,6 +129,18 @@ .menu{- top: 13px;+ top: 17px; }

diff --git a/slider.js b/slider.js@@ -129,6 +129,18 @@ var confSlider = {- delay: 500;+ delay: 5000; }

diff --git a/base.less b/base.less@@ -129,6 +129,18 @@ body {- font-family: Sans-serif;+ font-family: @font-futura; }

Como?

Fix #123: Altera cor do botão finalizar

Foi adicionada uma classe modificadora .finalizar dentro de .btn

O que?Por quê?

Como?

$ git show 9d32dac08c47f52a2b15a2b4298865448efe5bcfdiff --git a/quem-somos.html b/quem-somos.htmlnew file mode 100644 index 0000000..e9bc1b6--- /dev/null+++ b/quem-somos.html@@ -0,0 +1,10 @@+ <!DOCTYPE html>+ <html>+ <head> + <title>Quem Somos</title>+ </head>+ <body>...+ </body>+ </html>

Por quê?Adiciona página quem somos

O que?

Como?

Implicito. É claro o motivo de estar adicionando uma

nova página

Pensar a mensagem do commité o novo pensar no nome da variável

Deixa eu escrever do meu jeito. Não me enche o saco.

Padrão = Pensar menos.

Precisa ser curto, mas tem que falar tudo.

A mensagem deve ser imperativa. O commit fala o que fazer quando for aplicado.

A mensagem de commit 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

Parece bizarro. Mas o GIT mesmo faz isso: If applied, this commit will…

... Merge branch ‘staging’ into develop

... Revert "Add the thing with the stuff"

Commits em inglês, “pode to be”?

if (openSource || clienteGringo || padraoDoRepo==‘en’) {

lang = ‘en-US’;

} else {

lang = ‘pt-BR’;

}

Tags e versõesMarcando seu lugar no espaço tempo com

• Momentos do repositório. Release, por exemplo. • Padrão semântico: semver.org • Amplamente utilizado ~nas web~ • O favorito do NPM, Bower, GEM, PIP, Composer…

4 2 5. .

4MAJOR MINOR PATCH

2 5. .

4MAJOR MINOR PATCH

2 5. .Mudanças que nãomantém compatibilidade

com a versão anteriorRelease de pacote de features em produção

Correções do softwarejá em produção

2 5.E se eu quiser fazer tag de homologação?

-rc1Conheça o release candidate

$ git push origin 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

1.1.0-rc1

A tag não se relaciona com o branch, apenas com o commit.

1.0.0

1.0.1

branch-a branch-b branch-c

$ git clone git@github.com:guminidigital/projeto-vem-ni-mim.git

A nova vida depois do clone

$ git branch -a

Em qual branch devo trabalhar?

develop release/1.1.0 hotfix/1.0.1 feature/facelift-menu* master

$ git log -- arquivo.js

Por que modificaram tal coisa no arquivo.js?

commit 7c8f92ea525af7a5d65cb2f5a4ea20ee75f1575fAuthor: Walter White <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 87ba74f4b29cdc61a0a02e75120a0f3d50cca627Author: Jesse Pinkman <yo_bitch@outlook.com>Date: Mon Jul 25 19:55:14 2016 -0300

Fix #123: Cor de tal coisa em vermelho

commit ff393e464f5e6bbef30c5674abe17af8385215f7Author: Jesse Pinkman <yo_bitch@outlook.com>Date: Mon Jul 25 19:54:36 2016 -0300

Adiciona tal coisa

$ git tag

Deu ruim! Pra qual versão faço rollback?

1.0.0-rc1 1.0.0-rc2 1.0.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.1.3

top related