CodeGym /Curso Java /Python SELF PT /Trabalhando com branches no PyCharm

Trabalhando com branches no PyCharm

Python SELF PT
Nível 12 , Lição 3
Disponível

11.1 Branches no Git

Trabalhar com branches no Git é um dos aspectos chave da gestão de versões que permite executar várias linhas de desenvolvimento em paralelo num só repositório. A branch faz do Git uma ferramenta poderosa para colaboração, experimentação e gestão de diferentes versões de um projeto.

Você pode ver branches no Git como pastas, onde o Git copia seu projeto. Você tem a pasta principal do seu projeto no seu repositório localmaster. O Git pode criar cópias dessa pasta para que você possa experimentar sem correr o risco de mexer no código principal que já está funcionando bem. Tais pastas-cópias são chamadas de branches.

Branches são opções alternativas do código. Suponha que você queira mudar algo em um grande projeto ou realizar um experimento em que não está completamente seguro. Como você faria sem o Git?

Você poderia copiar o projeto para uma nova pasta e tentar mudar tudo nela. Se você gostar do resultado, pode copiar para a pasta principal. Se não gostar — pode esquecer a nova ou até mesmo deletar.

Vamos dar uma olhada em um exemplo prático, como escrever um livro:

  1. Você tem o manuscrito do livro (branch principal).
  2. Você decide tentar mudar o final (criação de uma nova branch).
  3. Você escreve o novo final em um documento separado (trabalho em uma nova branch).
  4. Se o novo final for melhor, substitui o antigo no manuscrito (merge das branches).
  5. Você apaga o documento com o novo final (remoção da branch).

11.2 Criando branches

Criar um branch no PyCharm é muito simples.

Digite o nome da branch.

O PyCharm imediatamente mostrará o nome do seu branch atual no menu superior:

O que havia antes?

Antes era exibido o nome do seu primeiro e principal branch — master.

Agora aparece test, o que significa que o Git (sob a supervisão do PyCharm) não só criou um novo branch, mas também já mudou para ele.

Vamos adicionar algum código no arquivo main.py do branch atual (test) e comitar.

11.3 Alternando entre branches

Passo 1. Escolha um branch.

Agora vamos mudar para nosso branch antigo. Clique no menu superior, e o que vemos?

Não se confunda — é bem simples:

Local — é a lista de branches do seu repositório Git local; tem dois aqui:

  • test
  • master

Remote — é o seu repositório remoto, que está no servidor GitHub. Mandamos para lá suas mudanças, mas o novo branch não está lá, o que faz sentido. O repositório remoto se chama origin, e nele só tem o branch master.

Recent — é a lista de nomes dos últimos branches com os quais você trabalhou. Esse item foi adicionado no PyCharm para conveniência e rapidez.

O nome origin/master à direita do nome do repositório local — é o nome do repositório remoto com o qual ele está sincronizado agora e para onde as mudanças serão enviadas.

Passo 2. — Carregue o código do branch na pasta atual.

Passo 3. Verifique:.

Eu vejo o branch (master) e o código antigo.

11.4 Fazendo merge de branches

Vamos agora tentar unir o código dos nossos dois branches.

Passo 1. Primeiro vamos adicionar ao nosso projeto mais um arquivo — init.py e colocar algum código nele.

  • Crie o arquivo init.py
  • Escreva nele o código print("Oi")
  • Comite o arquivo.

Assim que meus dois arquivos parecem no branch master:

Passo 2. Fazendo merge dos branches.

Vamos unir no nosso branch atual (master) as mudanças que foram feitas no branch test.

Para isso também usaremos o menu superior e o comando «Merge ‘test’ into ‘master’».

Passo 3. Verifique o resultado:.

Verifique:

  • O branch master ainda está sendo exibido no topo
  • Temos dois arquivos: init.py e main.py
  • O arquivo main.py contém o código que foi adicionado no branch test.

11.5 Conflitos de merge

Às vezes ocorrem conflitos ao fazer merge de branches.

Se você fizer alterações em um arquivo em diferentes branches e tentar uni-los, pode surgir um conflito.

Conflito de arquivos de texto

O Git é um sistema muito inteligente, ele entende tipos de arquivos. Se você fizer alterações em diferentes partes dos arquivos que ele considera como de texto, ele simplesmente transfere as alterações de um arquivo para o outro no lugar certo, como uma pessoa faria.

Conflito de arquivos binários

Mas se você modificar uma imagem ou documento, o Git não tentará combinar as partes em um único arquivo. Ele simplesmente irá perguntar qual versão do arquivo você deseja manter no branch atual.

Resolução manual de conflitos:

Se você fizer alterações no mesmo local de um arquivo de texto, o Git não será capaz de unir as diferentes versões corretamente e sugerirá que você faça isso.

Veja como isso pode parecer:

O que você vê aqui:

  • À esquerda, o conteúdo do arquivo main.py do branch master
  • À direita, o conteúdo do arquivo main.py do branch test
  • No meio, o PyCharm sugere que você escreva a versão final do código (pode-se clicar nos botões «>>» e «<<» para inserir automaticamente as alterações de um dos arquivos).

Eu aceitei a opção master e completei o código manualmente. Veja como ficou.

11.6 Histórico de mudanças

Outra coisa útil e interessante: você pode ver o histórico de mudanças de qualquer arquivo clicando no botão Show History. Há dois lugares onde ele pode estar — encontre-o.

Veja como está o histórico de mudanças para o arquivo main.py:

Explicações:

  • À esquerda, você vê o histórico de mudanças do arquivo específico:
    • Alterações mais recentes ficam no topo; mais antigas, embaixo.
    • Também é exibido o histórico de merges de branches.
  • À direita — alterações que foram feitas no commit específico.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION