Sobre
O git-flow é um conjunto de extensões para o git que provê operações de alto-nível para repositórios usando o modelo de branches do Vincent Driessen. mais
★ ★ ★
Este cheatsheet demonstra o uso básico e o efeito das operações do git-flow
★ ★ ★
Dicas básicas
- O git-flow oferece na linha de comando ajuda e saídas excelentes. Leia atentamente para ver o que está acontecendo...
- O cliente do OSX Sourcetree é um excelente gui para o git e tem suporte ao git-flow
★ ★ ★
Instalação
- Você precisa do git instalado como pré-requisito.
- O git flow funciona no OSX, Linux e no Windows
★ ★ ★
OSX
$ brew install git-flow
Linux
$ apt-get install git-flow
Windows (Cygwin)
$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash
Para instruções detalhadas sobre a instalação, visite a wiki do git-flow.
Começando
O git-flow precisa ser inicializado para personalizar a configuração de seu projeto.
★ ★ ★
Inicialização
Comece o uso do git-flow fazendo sua inicialização dentro de um repositório git existente:
git flow init
Você precisa responder algumas questões relativas às convenções de nomenclatura dos seus branches.
É recomendado que sejam usados os valores padrões.
Funcionalidades/features
- Desenvolva novas funcionalidades para as versões futuras
- Normalmente existem apenas nos repositórios dos desenvolvedores
★ ★ ★
Começar uma nova funcionalidade
O desenvolvimento de novas funcionalidades começa no branch 'develop'.
Comece o desenvolvimento de uma nova funcionalidade com
git flow feature start MYFEATURE
Esse comando cria um novo branch da funcionalidade baseado no 'develop' e alterna para ele
Finalizar uma funcionalidade
Finaliza o desenvolvimento de uma funcionalidade. Esse comando faz o seguinte
- Mescla MYFEATURE no 'develop'
- Remove o branch da funcionalidade
- Volta para o branch 'develop'
git flow feature finish MYFEATURE
Publicar uma funcionalidade
Você está desenvolvendo uma funcionalidade colaborativamente?
Publique uma funcionalidade para o servidor remoto, assim ela pode ser
utilizada por outros usuários.
git flow feature publish MYFEATURE
Obter uma funcionalidade publicada
Obtenha uma funcionalidade publicada por outro usuário e acompanhe as alterações remotas.
git flow feature pull MYFEATURE
Criar uma versão/release
- Auxilia a preparação de uma nova versão de produção
- Permite correções de bugs menores e a preparação de metadados de uma versão
★ ★ ★
Começar uma versão
Para começar uma versão, use o comando git flow release. Ele
cria um branch da versão baseado no branch 'develop'.
git flow release start RELEASE [BASE]
Você pode opcionalmente fornecer um hash sha-1 do commit [BASE]
de onde começar a versão. O
commit precisa estar no branch 'develop'
★ ★ ★
É sensato publicar o branch da versão depois de criá-lo, para permitir commits por outros desenvolvedores. É semelhante à publicação de uma funcionalidade com o comando:
git flow release publish RELEASE
(Você pode acompanhar uma versão remota com o comando git flow release track RELEASE
)
Finalizar uma versão
A finalização de uma versão é um dos grandes passos na ramificação/branching do git. Ele executa várias ações:
- Mescla o branch da versão no 'master'
- Etiqueta a versão com seu nome
- Mescla o branch da versão de volta no 'develop'
- Remove o branch da versão
git flow release finish RELEASE
Hotfixes
- Os hotfixes surgem da necessidade de agir imediatamente sobre uma situação indesejada na versão de produção ativa
- Pode ser criado a partir da tag correspondente no branch master que indica a versão em produção.
★ ★ ★
git flow hotfix start
Assim como os outros comandos do git flow, um hotfix inicia com
git flow hotfix start RELEASE
O argumento release nesse caso marca a versão defeituosa na produção
Finalizar um hotfix
Ao finalizar um hotfix ele é mesclado tanto no develop quanto no master. Além disso, o merge no master é etiquetado.
git flow hotfix finish RELEASE
Backlog
★ ★ ★
- Nem todos os comandos disponíveis estão cobertos aqui, apenas os mais importantes deles
- Você pode continuar a usar o git e todos os comandos dele normalmente como você já conhece, o git flow é apenas uma coleção de ferramentas
- A funcionalidade 'support' continua no estágio beta, seu uso não é indicado
- Se você quiser fornecer traduções, ficarei feliz de integrá-las
★ ★ ★