Ramificar e mesclar suas alterações

Concluído

Quando você trabalha no código Bicep, é comum precisar fazer mais de uma coisa por vez. Por exemplo, estes são dois cenários para trabalhar com o site da sua empresa de brinquedos:

  • A equipe de desenvolvimento do site precisa da sua ajuda para atualizar arquivos Bicep com alterações significativas. No entanto, a equipe não quer que essas alterações entrem em vigor ainda. Você precisa conseguir fazer pequenos ajustes na versão atual ao vivo do site em paralelo com o trabalho na nova versão.
  • Você está trabalhando em alterações experimentais que você acha que ajudarão a melhorar o desempenho do site. No entanto, essas alterações são preliminares. Você não quer aplicá-las à versão ao vivo do site até que esteja pronto.

Nesta lição, você aprenderá sobre GIT branches.

Observação

Os comandos nesta unidade são mostrados para ilustrar conceitos. Não execute os comandos ainda. Você praticará o que aprendeu aqui em breve.

O que são branches?

Um branch fornece uma maneira de ter várias cópias ativas de seus arquivos. Você pode criar e alternar entre branches sempre que quiser. Quando terminar de trabalhar com um branch, você poderá mesclá-lo em outro branch. Ou você pode excluí-lo, o que removerá todas as alterações.

É comum usar branches para todo o seu trabalho. Muitas vezes, você designa um branch como o branch primário que representa a versão conhecida ou atual de seus arquivos. Por convenção, esse branch geralmente é chamado de principal. Você pode criar quantos branches desejar. Quando as alterações em um branch estão prontas, você mescla o branch na ramificação principal.

Criar e fazer check-out de um branch

Criar um branch é rápido e fácil no Git. Há algumas maneiras de fazer isso, mas a maneira mais fácil normalmente é usar o comando git checkout. Veja um exemplo de como criamos um branch chamado my-experimental-changes:

git checkout -b my-experimental-changes

Esse comando faz duas coisas: ele cria o branch my-experimental-changes e faz check-out do branch recém-criado. Um check-out significa que a cópia dos arquivos que você vê na pasta refletirá o que está no branch. Se você tiver dois branches com conjuntos de alterações diferentes, fazer check-out de um branch e, depois, do outro permitirá inverter entre os dois conjuntos de alterações.

Você também pode alternar para um branch existente usando o comando git checkout. Neste exemplo, você faz check-out da ramificação principal:

git checkout main

Observação

Normalmente, você precisa fazer commit das alterações antes de fazer check-out de um branch diferente. O Git avisará se não for possível fazer check-out.

Trabalhar em um branch

Depois de alternar para um branch, você faz commit dos arquivos normalmente. Na verdade, tudo o que você fez até agora foi em um branch. Você estava trabalhando na ramificação principal, que é o branch padrão ao criar um novo repositório.

Quando você faz commit de algumas alterações enquanto faz check-out de um branch, o commit é associado ao branch. Quando você alterna para um branch diferente, provavelmente não verá a confirmação no histórico de git log até mesclar o branch.

Mesclar branches

Os branches são uma ótima maneira de separar seu trabalho em andamento da versão atual ao vivo do código Bicep. Mas depois de terminar de fazer alterações nos arquivos em um branch, você pode querer mesclar as alterações de volta à ramificação principal.

Ao trabalhar em um branch, você pode mesclar as alterações de outro branch no branch atual usando o comando git merge.

Observação

Certifique-se de fazer check-out do branch de destino de mesclagem (geralmente chamado de branch de destino) antes de mesclar. Lembre-se de que você está mesclando de outro branch para o branch de trabalho atual.

Aqui está um exemplo que mostra como você pode fazer check-out da ramificação principal e, em seguida, mesclar as alterações do branch my-experimental-changes na ramificação principal. Por fim, exclua o branch my-experimental-changes, pois você não precisará mais dele.

git checkout main
git merge my-experimental-changes
git branch -d my-experimental-changes

Dica

Quando você trabalha com outras pessoas, é comum usar solicitações de pull para mesclar suas alterações em vez de mesclar branches diretamente. Você aprenderá mais sobre colaboração e solicitações de pull em breve.

Mesclar conflitos

Quando o Git mescla as alterações de um branch a outro, ele analisa os arquivos que foram modificados e tenta mesclar as alterações. Às vezes, você pode ter feito alterações nas mesmas linhas de código em dois branches diferentes. Nessas situações, o Git não consegue escolher qual é a versão correta do código, então ele criará um conflito de mesclagem.

Não discutiremos conflitos de mesclagem em detalhes neste módulo, mas é importante saber que eles podem acontecer. E são mais comuns quando você colabora com outras pessoas. No resumo deste módulo, forneceremos um link para obter mais informações sobre como o Git e o Visual Studio Code ajudam a resolver conflitos de mesclagem.

Fluxos de trabalho do Git

Neste módulo, você aprenderá somente os conceitos básicos dos branches. No entanto, os branches são poderosos e oferecem flexibilidade no modo de trabalho. Por exemplo, você pode criar branches a partir de outros branches e mesclar um branch com qualquer outro branch. Você pode usar branches para criar todos os tipos de fluxos de trabalho diferentes que suportam a maneira como você e sua equipe gostam de trabalhar.

Neste módulo, estamos usando um fluxo de trabalho simples chamado desenvolvimento baseado em tronco. Nesse fluxo de trabalho, você tem um único branch de tronco. Por exemplo, usamos main nos exemplos deste artigo. Esse branch representa a versão conhecida do seu código. Você criará branches a partir desse tronco quando fizer alterações ou qualquer trabalho.

Com o desenvolvimento baseado em tronco, não é recomendável fazer alterações diretamente no branch do tronco. Você tenta manter outros branches por um curto período, o que ajuda a minimizar conflitos de mesclagem. Depois, você mescla e exclui esses branches à medida que conclui as partes de trabalho.

Existem outros fluxos de trabalho que são comuns em ambientes de equipe em que talvez você queira controlar a frequência com que libera suas alterações. No resumo deste módulo, forneceremos links para obter mais informações sobre fluxos de trabalho do Git.