Exercício – Mesclar branch de Bob

Concluído

Enquanto Alice está trabalhando em CSS para o site, Bob está trabalhando em casa, tranquilamente, sem saber o que Alice está fazendo. Essa organização é ótima, porque todos eles estão usando branches! Bob decide fazer algumas alterações por conta própria.

Criar um branch para Bob

  1. Retorne ao diretório Bob e execute o comando a seguir para criar um branch chamado add-cat. Use a opção checkout -b popular para criar o branch e alternar para um único comando.

    cd ../Bob
    git checkout -b add-cat
    
    
  2. Baixe o arquivo zip que contém alguns recursos do site. Descompacte os arquivos de recurso:

    wget https://github.com/MicrosoftDocs/mslearn-branch-merge-git/raw/main/git-resources.zip
    unzip git-resources.zip
    
    
  3. Agora, mova o arquivo bobcat2-317x240.jpg para o diretório Ativos de Bob. Exclua os outros arquivos. Você baixará os arquivos e os usará novamente mais tarde.

    mv bobcat2-317x240.jpg Assets/bobcat2-317x240.jpg
    rm git-resources.zip
    rm bombay-cat-180x240.jpg
    
    
  4. Abra o arquivo index.html e substitua a linha que diz "Eventualmente, colocaremos as imagens de gato aqui" pela seguinte linha:

    <img src="Assets/bobcat2-317x240.jpg" />
    
  5. Salve o arquivo e feche o editor.

  6. Você fez duas alterações no branch add-cat de Bob – adicionou um arquivo e modificou outro. Execute git status para verificar as alterações mais uma vez:

    git status
    
    
  7. Execute os seguintes comandos para adicionar o novo arquivo no diretório Ativos para o índice e confirmar todas as alterações:

    git add .
    git commit -a -m "Add picture of Bob's cat"
    
    
  8. Bob agora executa a mesma ação que Alice realizou anteriormente. Bob retorna para o branch main e executa um pull para ver se algo foi alterado:

    git checkout main
    git pull
    
    
  9. Verifique a saída. Desta vez, a saída indica que alterações foram feitas no branch main no repositório compartilhado (o resultado do push de Alice). Também indica que as alterações extraídas de main no repositório compartilhado foram mescladas com main no repositório de Bob:

    remote: Counting objects: 4, done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 4 (delta 1), reused 0 (delta 0)
    Unpacking objects: 100% (4/4), done.
    From D:/Labs/Git/Bob/../Shared
       e81ae09..1d2bfea  main     -> origin/main
    Updating e81ae09..1d2bfea
    Fast-forward
     Assets/site.css | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
  10. Bob mescla seu branch no branch main para que main no repositório tenha as alterações dele e as alterações de Alice. Bob efetua push de main em seu computador para o branch main no repositório compartilhado:

    git merge add-cat --no-edit
    git push
    
    

Bob não usou o sinalizador --ff-only porque sabia que main tinha mudado. Uma mesclagem somente de avanço rápido teria falhado.

Sincronizar o repositórios

Neste ponto, Bob tem um repositório atualizado, mas Alice não. Alice precisa fazer um git pull do repositório compartilhado para garantir que ela tenha a melhor e mais recente versão do site.

Execute os seguintes comandos para sincronizar o repositório de Alice com o repositório compartilhado:

cd ../Alice
git pull

Reserve um tempo para verificar se o repositório de Alice e de Bob estão sincronizados. Cada repos deve ter um arquivo JPG no diretório Ativos e um elemento <img> declarado no arquivo index.html. O arquivo site.css na pasta Ativos de cada repositório deve conter uma linha que define um estilo CSS chamado gato. Esse estilo foi adicionado por Alice quando ela fez suas alterações.

Se você abrir index.html em um navegador, verá a seguinte imagem:

Screenshot that shows cats on the website.

Na próxima lição, você aprenderá a resolver os conflitos de mesclagem, que ocorrem quando as alterações feitas por dois ou mais desenvolvedores se sobrepõem.