DEV Community

Danilo Silva
Danilo Silva

Posted on

Git Flow - Configuração inicial [pt-BR]

De forma simples e fácil, vamos aprender a configurar qualquer repositório GIT para utilizar o fluxo do Git Flow na prática! Vamos lá?


Resumo

  • Iremos criar uma pasta em nosso computador (em qualquer diretório que preferir)
  • Inicializaremos um repositório GIT (partirei do pressuposto que você também já sabe como funciona um repositório)
  • Aplicaremos as configurações do fluxo Git Flow neste repositório.

Mão na massa 😄

Pré-requisitos

O Git Flow não é uma ferramenta padrão do Git, e por esse motivo precisamos antes de tudo realizar a instalação do plugin.

No Github tem o passo a passo de como instalar em todos os ambientes.

1. Criando pasta

No diretório desejado, execute os comandos:

mkdir app-gitflow        // criação de pasta
cd app-gitflow           // acessando pasta criada
Enter fullscreen mode Exit fullscreen mode

2. Inicializando um repositório git

Dentro da pasta criada, execute o comando:

git init
Enter fullscreen mode Exit fullscreen mode

3. Configurando o fluxo Git Flow

Por padrão, o Git Flow não vem configurado em um repositório GIT, logo vamos executar o comando principal e em seguida, você vai perceber o quão simples é configurar e ver este fluxo apto para uso.

git flow init
Enter fullscreen mode Exit fullscreen mode

Ao executar este comando é iniciada um pequena série de definições feitas através do console.

Git Flow init in action

Vamos entender cada item configurado, se liga

// Primeiro, a definição das branches principais
No branches exist yet. Base branches must be created now.

// 1. Defina qual o nome da branch que armazenará o código de produção
Branch name for production releases: [master] 
// Por padrão, o GIT sugere que seja: master
// Basta apertar ENTER

// 2. Defina qual o nome da branch de desenvolvimento principal
Branch name for "next release" development: [develop]
// Por padrão, o GIT sugere que seja: develop
// Basta apertar ENTER

// Agora, a definição das branches de apoio
How to name your supporting branch prefixes?

// 3. Defina o prefixo das branches features
Feature branches? [feature/]
// Por padrão, o GIT sugere que seja: feature/
// Basta apertar ENTER

// 4. Defina o prefixo das branches bugfixs
Bugfix branches? [bugfix/]
// Por padrão, o GIT sugere que seja: bugfix/
// Basta apertar ENTER

// 5. Defina o prefixo das branches releases
Release branches? [release/]
// Por padrão, o GIT sugere que seja: release/
// Basta apertar ENTER

// 6. Defina o prefixo das branches hotfixs
Hotfix branches? [hotfix/]
// Por padrão, o GIT sugere que seja: hotfix/
// Basta apertar ENTER

// 6. Defina o prefixo das branches supports
Support branches? [support/]
// Por padrão, o GIT sugere que seja: support/
// Basta apertar ENTER

// 7. Defina o prefixo para cada versão gerada através de tags
Version tag prefix? []
// Basta apertar ENTER

// 7. Indique a pasta onde ficará os scripts(ganchos) personalizados do repositório
Hooks and filters directory? [<diretorio>/app-gitflow/.git/hooks]
// Por padrão, o GIT sugere a configuração padrão, alocada dentro da própria pasta
// Basta apertar ENTER
Enter fullscreen mode Exit fullscreen mode

✅ Pronto, simples e rápido, já temos um modelo para aplicarmos em qualquer repositório durante o desenvolvimento de qualquer projeto ou aplicação!

⚡️ Dica rápida

Você deve ter percebido que não precisamos configurar nenhum prefixo ao executar o comando principal, bastou ENTER a cada linha.
Para pular essas configurações e configurar o fluxo de forma padrão, execute o comando principal com a flag -d:

git flow init -d
Enter fullscreen mode Exit fullscreen mode

Considerações finais

Ainda nesta série sobre Git Flow você encontrará explicações e usos práticos de cada conjuntos de branches.

Recomendo que você explore cada uma delas pois, logo, você vai sentir que está dominado o ciclo de desenvolvimento de uma aplicação, de ponta-a-ponta, e ter total capacidade de ajudar sua equipe de desenvolvimento!


Obrigado por chegar até aqui! 😄

Top comments (0)