Exercício – intercalar a ramificação de Bob

Concluído

Enquanto Alice está trabalhando em CSS para o site, Bob está trabalhando em casa, felizmente sem saber do trabalho que Alice está fazendo. Não há problema, porque ambos estão a utilizar ramificações! Bob decide fazer algumas alterações por conta própria.

Criar uma ramificação para Bob

  1. Retorne ao diretório Bob e execute o seguinte comando para criar uma ramificação chamada add-cat. Use a opção popular checkout -b para criar a ramificação e alternar para ela em um único comando.

    cd ../Bob
    git checkout -b add-cat
    
    
  2. Baixe o arquivo zip que contém alguns recursos do site. Em seguida, 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 Bob's Assets. 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. Em seguida, abra o arquivo index.html e substitua a linha que diz "Eventualmente vamos colocar fotos de gatos aqui" pela seguinte linha:

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

  6. Você fez duas alterações na ramificação do add-cat Bob — adicionou um arquivo e modificou outro. Execute git status para verificar novamente as alterações:

    git status
    
    
  7. Em seguida, execute os seguintes comandos para adicionar o novo arquivo no diretório Assets ao índice e confirmar todas as alterações:

    git add .
    git commit -a -m "Add picture of Bob's cat"
    
    
  8. Bob agora faz a mesma ação que Alice fez anteriormente. Bob muda de volta para a main ramificação e executa um pull para ver se algo mudou:

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

    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. Em seguida, Bob funde seu ramo no main ramo para que main em seu repositório tenha suas mudanças e as mudanças de Alice. Em seguida, Bob empurra main o computador para a main ramificação no repositório compartilhado:

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

Bob não usou a --ff-only bandeira porque eles sabiam que main tinha mudado. Uma fusão apenas de avanço rápido teria falhado.

Sincronizar os repositórios

Nesta altura, Bob tem um repositório atualizado, mas Alice não. Alice precisa fazer um git pull repositório compartilhado para se certificar de que eles têm a versão mais recente e melhor 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 o repositório de Bob estão sincronizados. Cada um dos repositórios deve ter um arquivo JPG no diretório Assets e um <img> elemento declarado no arquivo index.html. O arquivo site.css na pasta Assets de cada repositório deve conter uma linha que define um estilo CSS chamado cat. Este estilo foi adicionado por Alice quando eles fizeram suas alterações.

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

Captura de tela que mostra gatos no site.

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