Atualizar Branch Remota Após Reescrever o Histórico

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Git é um poderoso sistema de controle de versão que permite aos desenvolvedores rastrear as alterações feitas em seu código-base. Uma das principais características do Git é a capacidade de reescrever o histórico, o que pode ser útil quando você precisa fazer alterações em commits anteriores. No entanto, reescrever o histórico pode causar problemas ao tentar enviar (push) as alterações para um repositório remoto. Neste laboratório, você aprenderá como atualizar uma branch remota após reescrever o histórico localmente.

Atualizar Branch Remota Após Reescrever o Histórico

Quando você reescreve o histórico localmente, você cria um novo commit com um hash SHA-1 diferente. Isso significa que o histórico de commits em sua branch local é diferente do histórico de commits na branch remota. Se você tentar enviar (push) suas alterações para a branch remota, o Git rejeitará o push porque verá o histórico de commits como divergente. Para resolver esse problema, você precisa forçar uma atualização da branch remota.

Para completar este laboratório, você usará o repositório Git git-playground da sua conta do GitHub, que vem de um fork de https://github.com/labex-labs/git-playground.git.

  1. Clone o repositório git-playground para sua máquina local:
git clone https://github.com/your-username/git-playground.git
  1. Atualize um commit com a mensagem "Added file2.txt" para um commit com a mensagem "Update file2.txt":
git commit --amend
  1. Envie (push) as alterações da branch local para o repositório remoto:
git push
  1. Se você não conseguir enviar (push) com sucesso, force o push:
git push -f origin master

A flag -f força o Git a atualizar a branch remota com suas alterações, mesmo que o histórico de commits tenha divergido.

Este é o resultado final:

[object Object]

Resumo

Neste laboratório, você aprendeu como atualizar uma branch remota após reescrever o histórico localmente. Ao usar o comando git push -f, você pode forçar o Git a atualizar a branch remota com suas alterações, mesmo que o histórico de commits tenha divergido. É importante usar este comando com cautela, pois ele pode sobrescrever as alterações feitas por outros desenvolvedores.