Skip to content

Instantly share code, notes, and snippets.

@eddyyxxyy
Last active October 18, 2023 12:19
Show Gist options
  • Save eddyyxxyy/023bdf3a96a567b2e559e1dae00905b0 to your computer and use it in GitHub Desktop.
Save eddyyxxyy/023bdf3a96a567b2e559e1dae00905b0 to your computer and use it in GitHub Desktop.
Fluxo de trabalho manual do Git-Flow e Semântica

Como emular o fluxo de trabalho de forma manual da ferramenta git-flow.

  1. Crie a branch de desenvolvimento (develop) a partir da branch principal (main):

    git branch develop
    git push -u origin develop
  2. Crie uma branch de feature a partir da branch develop. Por exemplo, para uma feature chamada 'minha-feature':

    git checkout -b feature/minha-feature develop
  3. Desenvolva sua feature na branch de feature. Faça commits conforme necessário:

    git add .
    git commit -m "Desenvolvi minha feature"
  4. Quando a feature estiver pronta, faça o merge dela na branch develop:

    git checkout develop
    git merge --no-ff feature/minha-feature
    git push origin develop
  5. Delete a branch de feature após o merge:

    git branch -d feature/minha-feature
  6. Quando estiver pronto para uma release, crie uma branch de release a partir da branch develop. Por exemplo, para uma release chamada '0.1.0':

    git checkout -b release/0.1.0 develop
  7. Faça o merge da branch de release na branch main e na branch develop:

    git checkout main
    git merge --no-ff release/0.1.0
    git push origin main
    
    git checkout develop
    git merge --no-ff release/0.1.0
    git push origin develop
  8. Delete a branch de release após o merge:

    git branch -d release/0.1.0
  9. Crie uma tag na branch main para marcar a release:

    git tag -a 0.1.0 -m "Release 0.1.0"
    git push origin 0.1.0
    

Caso hajam bugs e outros detalhes que necessitam de correção rápidas

  1. Puxe as últimas alterações da branch main:

    git checkout main
    git pull origin main
  2. Crie uma branch de hotfix a partir da branch main. Por exemplo, para um hotfix chamado 'meu-hotfix':

    git checkout -b hotfix/meu-hotfix main
  3. Faça as correções necessárias na branch de hotfix. Faça commits conforme necessário:

    git add .
    git commit -m "Corrigi o problema"
  4. Quando o hotfix estiver pronto, faça o merge dele nas branches main e develop:

    git checkout main
    git merge --no-ff hotfix/meu-hotfix
    git push origin main
    
    git checkout develop
    git merge --no-ff hotfix/meu-hotfix
    git push origin develop
  5. Delete a branch de hotfix após o merge:

    git branch -d hotfix/meu-hotfix
  6. Crie uma tag na branch main para marcar o hotfix:

    git tag -a 0.1.1 -m "Hotfix 0.1.1"
    git push origin 0.1.1

Commits e Versionamento Semânticos

O versionamento semântico é um sistema de versionamento usado ao desenvolver/liberar um software. Ele oferece uma maneira universal de versionar projetos de desenvolvimento de software. Dado um número de versão Major.Minor.Patch, você incrementa o:

  1. Versão Major quando você faz alterações incompatíveis na API.
  2. Versão Minor quando você adiciona funcionalidade de maneira compatível com versões anteriores.
  3. Versão Patch quando você faz correções de bugs compatíveis com versões anteriores.

Rótulos adicionais para pré-lançamento e metadados de construção estão disponíveis como extensões para o formato Major.Minor.Patch.

Os commits semânticos no git-flow são feitos conforme necessário durante o desenvolvimento da feature, correção do hotfix ou preparação da release. Cada commit deve representar uma unidade lógica de trabalho concluída. No contexto do versionamento semântico, os commits ajudam a rastrear quais alterações foram feitas em cada versão do software.

As mensagens de commit devem ser claras e significativas. Aqui estão algumas dicas para escrever boas mensagens de commit:

  1. Use o tempo presente: "Adiciona recurso" não "Adicionou recurso" ou "Adicionando recurso".
  2. Inclua o contexto: Por exemplo, "Adiciona validação de entrada no método de login".
  3. Seja breve mas claro: Idealmente, a mensagem do commit deve ser capaz de responder à pergunta "Por que esta mudança foi necessária?".

Lembre-se, bons commits são úteis para outros desenvolvedores (e para você no futuro) entenderem rapidamente o que foi alterado e por quê.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment