Close

Git Branch

Este documento é uma revisão mais profunda do comando git branch e uma discussão do modelo geral de ramificação do Git. A ramificação é uma função disponível na maioria dos sistemas de controle de versão mais modernos. A ramificação em outros VCSs pode ser uma operação cara tanto em questão de tempo quanto de espaço em disco. No Git, as ramificações fazem parte do processo de desenvolvimento diário. As ramificações do Git são um indicador efetivo de um instantâneo de suas mudanças. Quando você quiser adicionar uma nova função ou corrigir um bug—não importa o tamanho, grande ou pequeno—basta criar uma nova ramificação para encapsular as mudanças. Isso faz com que seja mais difícil um código instável ser mesclado com a base de código principal e dá a chance de você limpar seu histórico futuro antes de fazer a mesclagem na ramificação principal.


Este documento é uma revisão mais profunda do comando git branch e uma discussão do modelo geral de ramificação do Git. A ramificação é uma função disponível na maioria dos sistemas de controle de versão mais modernos. A ramificação em outros VCSs pode ser uma operação cara tanto em questão de tempo quanto de espaço em disco. No Git, as ramificações fazem parte do processo de desenvolvimento diário. As ramificações do Git são um indicador efetivo de um instantâneo de suas mudanças. Quando você quiser adicionar uma nova função ou corrigir um bug—não importa o tamanho, grande ou pequeno—basta criar uma nova ramificação para encapsular as mudanças. Isso faz com que seja mais difícil um código instável ser mesclado com a base de código principal e dá a chance de você limpar seu histórico futuro antes de fazer a mesclagem na ramificação principal.

Git Branch
Janela do console
Material relacionado

Log avançado do Git

Logotipo do Bitbucket
VER SOLUÇÃO

Aprenda a usar o Git com o Bitbucket Cloud

O diagrama acima mostra um repositório com duas linhas isoladas de desenvolvimento, uma para uma função pequena e outra para uma função de duração mais longa. Ao desenvolver esses funções nas ramificações, é possível não apenas trabalhar em ambos em paralelo, mas também manter a ramificação main livre de códigos questionáveis.

A implementação atrás de ramificações do Git é muito mais leve do que outros modelos do sistema de controle de versão. Em vez de copiar arquivos de diretório para diretório, o Git armazena uma ramificação como referência a uma confirmação. Nesse sentido, uma ramificação representa a ponta de uma série de confirmações—não é um contêiner para confirmações. A história de uma ramificação é extrapolada através de relações de confirmação.

Enquanto você lê, lembre-se de que as ramificações do Git não são como ramificações do SVN. Considerando que as ramificações do SVN são usadas apenas para capturar o esforço de desenvolvimento em grande escala ocasional, as ramificações do Git são parte integrante do seu fluxo de trabalho diário. O conteúdo a seguir vai ser expandido sobre a arquitetura interna de ramificação do Git.

Como funciona


Uma ramificação representa uma linha independente de desenvolvimento. As ramificações funcionam como uma abstração para o processo de edição/estágio/confirmação. Você pode pensar nelas como uma forma de solicitar um diretório de trabalho, uma área de staging e um histórico do projeto totalmente novos. Novas confirmações são registradas no histórico para a ramificação atual, que resulta em uma bifurcação na história do projeto.

O comando git branch permite criar, listar, renomear e excluir ramificações. Ele não permite alternar entre as ramificações ou reunir um histórico bifurcado de novo. Por esse motivo, o comando git branch é muito integrado aos comandos git checkout e git merge.

Opções comuns


git branch

Listar todas as ramificações no seu repositório. Isso é sinônimo de git branch --list.

git branch <branch>

Criar uma nova ramificação chamada . Isso não verifica a nova ramificação.

git branch -d <branch>

Excluir a ramificação especificada. Esta é uma operação “segura” em que o Git impede que você exclua a ramificação se tiver mudanças não mescladas.

git branch -D <branch>

Forçar a exclusão da ramificação especificada, mesmo que ela tenha mudanças não mescladas. Este é o comando a ser usado se você quiser excluir de modo permanente todas as confirmações associadas a uma linha particular de desenvolvimento.

git branch -m <branch>

Renomear a ramificação atual para .

git branch -a

Listar todas as ramificações remotas.

Como criar ramificações


É importante entender que as ramificações são apenas indicadores para confirmações. Quando você cria uma ramificação, tudo o que o Git precisa fazer é criar um novo indicador, ele não muda o repositório de nenhuma outra maneira. Se você começar com um repositório que seja parecido com o seguinte:

Repositório sem ramificações

Em seguida, você cria uma ramificação usando o comando a seguir:

git branch crazy-experiment

A história do repositório permanece inalterada. Tudo o que você tem é um novo indicador para a confirmação atual:

Criar nova ramificação

Observe que isso apenas cria a nova ramificação. Para começar a adicionar confirmações a ela, é necessário selecionar com git checkout e, em seguida, usar os comandos git add e git commit padrão.

Como criar ramificações remotas


Até agora, todos esses exemplos demonstraram operações de ramificação local. O comando git branch também funciona em ramificações remotas. Para operar em ramificações remotas, um repositório remoto deve ser configurado primeiro e adicionado à configuração do repositório local.

$ git remote add new-remote-repo https://bitbucket.com/user/repo.git
# Add remote repo to local repo config
$ git push <new-remote-repo> crazy-experiment~
# pushes the crazy-experiment branch to new-remote-repo

Este comando vai enviar uma cópia da ramificação local crazy-experiment para o repositório remoto .

Como excluir ramificações


Depois que terminar de trabalhar em uma ramificação e tiver feito a mesclagem dela com a base de código principal, você está livre para excluir a ramificação sem perder nenhuma história:

git branch -d crazy-experiment

No entanto, se a ramificação não tiver sido mesclada, o comando acima enviará uma mensagem de erro:

error: The branch 'crazy-experiment' is not fully merged. If you are sure you want to delete it, run 'git branch -D crazy-experiment'.

Isso impede que você perca o acesso a toda a linha de desenvolvimento. Se você quiser mesmo excluir a ramificação (por exemplo, caso seja um experimento que falhou), pode usar o marcador-D em maiúscula:

git branch -D crazy-experiment

Isso exclui a ramificação independentemente de seu status e sem avisos, portanto, use com critério.

Os comandos anteriores excluirão uma cópia local de uma ramificação. A ramificação ainda pode existir nos repositórios remotos. Para excluir uma ramificação remota, execute o seguinte.

git push origin --delete crazy-experiment

ou

git push origin :crazy-experiment

Isso vai enviar um sinal de exclusão para o repositório de origem remota que aciona uma exclusão da ramificação remota crazy-experiment.

Resumo


Neste documento, a gente falou sobre o comportamento da ramificação do Git e o comando git branch. As funções principais dos comandos git branch são criar, listar, renomear e excluir ramificações. Para operar melhor nas ramificações resultantes, o comando em geral é usado com outros comandos, como git checkout. Saiba mais sobre as operações de ramificação git checkout; como alternar e mesclar ramificações, na página do git checkout.

Comparadas a outros VCSs, as operações de ramificação do Git são baratas e usadas com frequência. Essa flexibilidade permite uma poderosa personalização do fluxo de trabalho do Git. Para obter mais informações sobre fluxos de trabalho do Git, visite as páginas de discussão do fluxo de trabalho estendido: Fluxo de trabalho de ramificação da função, Fluxo de trabalho do Gitflow e Fluxo de trabalho de bifurcação.


Compartilhar este artigo

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Pessoas colaborando usando uma parede cheia de ferramentas

Blog do Bitbucket

Ilustração do DevOps

Caminho de aprendizagem de DevOps

Demonstrações de funções no Demo Den com parceiros da Atlassian

Como o Bitbucket Cloud funciona com o Atlassian Open DevOps

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up