Cómo revertir la rama maestra a aguas arriba

145

Bifurqué un repositorio de git y configuré aguas arriba. Hice algunos cambios en la rama Master y me comprometí y empujé a github.

Ahora, ¿qué debo hacer para abandonar todos mis cambios en la rama maestra y hacerla idéntica a la rama maestra aguas arriba?

Gelin Luo
fuente

Respuestas:

277

(Supongo que los cambios que ahora desea ignorar están en su origincontrol remoto, está en su mastersucursal y desea volver al contenido del upstreamcontrol remoto)

En primer lugar, restablezca su copia de trabajo al maestro ascendente:

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

Luego empuje esta nueva rama hacia su repositorio de origen, ignorando el hecho de que no será un avance rápido:

git push origin +master
nickgrim
fuente
14
También puede necesitar ejecutarse git remote add upstream <upstream_repo_url>si bifurcaste la rama usando GitHub.
Kato
3
¿Cuál es el significado de +in git push origin +master? ¿Es lo mismo que solo git push origin master?
bluenote10
44
@ bluenote10 No son lo mismo. Esto +es lo que le dice a git que "[ignore] el hecho de que no será un avance rápido". Es un poco como hacer un git push --force, pero solo se aplica a esa referencia específica.
nickgrim
1
No funciono para mi. Hice un estado git después de que tiene elementos que se han modificado. Voy a tener que limpiar y comenzar de nuevo. Git es extremadamente difícil de entender.
Mitch
1
@mehmet No, solo cambia la rama en la que estás.
John