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?

Gelin Luo
fonte

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
nickgrim
fonte
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