Ramificar e mesclar suas alterações

Concluído

Quando você trabalha com código Bicep, é comum precisar fazer mais de uma coisa ao mesmo tempo. Por exemplo, aqui estão dois cenários para trabalhar com o site da sua empresa de brinquedos:

  • A equipe de desenvolvimento do seu site quer sua ajuda na atualização de arquivos Bicep com alterações significativas. No entanto, a equipe ainda não quer que essas mudanças entrem em funcionamento. Você precisa ser capaz de fazer pequenos ajustes na versão ao vivo atual do site em paralelo com o trabalho na nova versão.
  • Você está trabalhando em mudanças experimentais que você acha que ajudarão a melhorar o desempenho do site. No entanto, estas alterações são preliminares. Você não quer aplicá-los à versão ao vivo do site até estar pronto.

Nesta unidade, você aprende sobre as ramificações do Git.

Nota

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

O que são filiais?

Uma ramificação fornece uma maneira de ter várias cópias ativas de seus arquivos. Você pode criar e alternar entre filiais sempre que quiser. Quando terminar de trabalhar com uma ramificação, você poderá mesclá-la em outra ramificação. Ou você pode excluí-lo, o que remove todas as alterações.

É comum usar ramificações para todo o seu trabalho. Muitas vezes, você designa uma ramificação como a ramificação principal que representa a versão válida ou ativa conhecida de seus arquivos. Por convenção, este ramo é geralmente chamado de principal. Você pode criar qualquer número de outras ramificações. Quando as alterações em uma ramificação estiverem prontas, você mesclará a ramificação na ramificação principal .

Criar e fazer check-out de uma filial

Criar uma ramificação é rápido e fácil no Git. Existem algumas maneiras de fazê-lo, mas a maneira mais fácil é normalmente usar o git checkout comando. Aqui está um exemplo de como criamos uma nova ramificação chamada my-experimental-changes:

git checkout -b my-experimental-changes

Na verdade, esse comando faz duas coisas: cria a ramificação my-experimental-changes e verifica a ramificação recém-criada. Um checkout significa que a cópia dos arquivos que você vê em sua pasta refletirá o que está na ramificação. Se você tiver duas ramificações com conjuntos diferentes de alterações, fazer check-out de uma ramificação e, em seguida, a outra permitirá que você alterne entre os dois conjuntos de alterações.

Você pode alternar para uma ramificação existente usando o git checkout comando também. Neste exemplo, você verifica a ramificação principal :

git checkout main

Nota

Normalmente, você precisa confirmar suas alterações antes de poder fazer check-out de uma ramificação diferente. O Git irá avisá-lo se você não puder fazer check-out.

Trabalhar numa sucursal

Depois de mudar para uma ramificação, você confirma arquivos como é normal. Na verdade, tudo o que você fez até agora foi em um ramo. Você estava trabalhando na ramificação principal , que é a ramificação padrão quando você cria um novo repositório.

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

Mesclar ramificações

As ramificações são uma ótima maneira de separar seu trabalho em andamento da versão atual ao vivo do seu código Bicep. Mas depois de terminar de fazer alterações em seus arquivos em uma ramificação, muitas vezes você deseja mesclar as alterações de volta à sua ramificação principal .

Quando estiver trabalhando em uma ramificação, você pode mesclar as alterações de outra ramificação em sua ramificação atual usando o git merge comando.

Nota

Certifique-se de verificar a ramificação de destino de mesclagem (geralmente chamada de ramificação de destino) antes de mesclar. Lembre-se de que você está se fundindo de outro ramo para o seu ramo de trabalho atual.

Este é um exemplo que mostra como você pode verificar a ramificação principal e, em seguida, mesclar as alterações da ramificação my-experimental-changes para a ramificação principal. Finalmente, você exclui a ramificação my-experimental-changes porque não precisa mais dela.

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

Gorjeta

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

Conflitos de mesclagem

Quando o Git mescla alterações de uma ramificação para outra, ele examina 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 duas ramificações diferentes. Nessas situações, o Git não pode escolher qual é a versão correta do código, portanto, em vez disso, criará um conflito de mesclagem.

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

Fluxos de trabalho do Git

Neste módulo, você aprende apenas sobre o básico de ramificações. No entanto, as filiais são poderosas e dão-lhe flexibilidade na forma como trabalha. Por exemplo, você pode criar ramificações fora de outras ramificações e mesclar uma ramificação com qualquer outra ramificação. Você pode usar ramificações 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. Neste fluxo de trabalho, você tem uma única ramificação de tronco . Por exemplo, usamos main nos exemplos deste artigo. Essa ramificação representa a versão em boas condições do seu código. Você cria ramificações fora desse tronco quando faz alterações ou faz qualquer trabalho.

O desenvolvimento baseado em tronco desencoraja fazer alterações diretamente no ramo do tronco. Você tenta manter outras ramificações por apenas um curto período de tempo, o que ajuda a minimizar os conflitos de mesclagem. Em seguida, você mescla e exclui essas ramificações à medida que conclui partes do trabalho.

Há outros fluxos de trabalho que são comuns em ambientes de equipe onde você pode querer controlar a frequência com que libera suas alterações. No resumo deste módulo, fornecemos links para mais informações sobre fluxos de trabalho do Git.