Como reverter o ramo mestre para o upstream


145

Eu peguei um repositório git e configurei o upstream. Fiz algumas alterações no ramo Master e fiz o commit e o empurrei para o github.

Agora, o que devo fazer para abandonar todas as minhas alterações no ramo mestre e torná-lo idêntico ao ramo mestre do upstream?

Respostas:


277

(Suponho que as alterações que agora você deseja ignorar estão no seu origincontrole remoto, você está no seu masterramo e deseja reverter para o conteúdo do upstreamcontrole remoto)

Primeiramente, redefina sua cópia de trabalho para o mestre upstream:

git remote update
# the double hyphen ensures that upstream/master is
# considered as a revision and not confused as a path
git reset --hard upstream/master --

Em seguida, envie essa nova ramificação para o repositório de origem, ignorando o fato de que não será um avanço rápido:

git push origin +master

14
Também pode ser necessário executar git remote add upstream <upstream_repo_url>se você bifurcar a ramificação usando o GitHub.
Kato

3
Qual é o significado do +in git push origin +master? É o mesmo que apenas git push origin master?
bluenote10

4
@ bluenote10 Eles não são os mesmos. O +é o que diz git para "[ignorar] o fato de que ele não vai ser um fast-forward". É um pouco como fazer um git push --force, mas só se aplica a essa referência específica.
nickgrim

1
Não funcionou para mim. Eu fiz um status de git depois de ter itens que foram modificados. Vou ter que limpar e começar de novo. Git é extremamente difícil de entender.
Mitch

1
@ mehmet Não, ele altera apenas o ramo em que você está.
John
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.