2010-01-27 30 views
11

Hice un poco de desarrollo contra la rama incorrecta en mi repositorio local. Hice un git branch sin hacer un siguiente git checkout. Los comandos se ven más o menos así:¿Cómo revertir una rama local a cómo está en github?

#On branch development 
git branch release-v0.2.0b 
# changes and several commits 
git push origin release-v0.2.0b 

Y entonces me di cuenta de que estaba trabajando en la rama incorrecta. Mi repo github está en el estado correcto, pero mi repositorio local no. He fusionado los cambios del desarrollo en release-v0.2.0b, pero me gustaría restablecer el desarrollo de nuevo a como está en mi repositorio github. ¿Cuál es la mejor manera de hacerlo?

Respuesta

13

sólo para asegurarse de que entiendo el estado de las cosas: se creó la rama de lanzamiento pero no lo comprobar que funciona, por lo que sus cometa, está en la rama de desarrollo en su repositorio local. Dijiste que fusionaste los cambios en la rama release-v0.2.0b.

Si ese es el caso, y no hay otras confirmaciones en la rama de desarrollo que necesita conservar, simplemente elimine la copia local de la rama de desarrollo y compruébela nuevamente desde el origen.

En primer lugar, comprobar qué ramas que tiene y cuál está en:

git branch -av 

Luego cambiar lejos de la rama de desarrollo para que pueda eliminarlo:

git checkout origin/development 
git branch -D development 

que realmente le deja en no hay rama, pero volverá a una derivación cuando la vuelva a verificar desde el origen:

git checkout origin/development -b development 

Sugiero verificar el origen/desarrollo para evitar el batido innecesario de archivos en su instantánea.

2

Volver a la rama liberación local desea que los cambios en, Pull allí desde GitHub.

git checkout local-branch-that-refers-public-v0.2.0b 
git pull origin release-v0.2.0b 

A continuación, restablezca el puntero rama de la rama local que se ha comprometido con los principios de comprometerse desea volver a.

git checkout release-v0.2.0b 
git reset HEAD^ 
54

Incluso más rápido que sólo puede restablecer una rama local a una distancia específica:

git reset --hard remote/branch 

Donde "a distancia", el nombre de su control remoto
Donde "rama" el nombre de la rama remota

+0

Gracias . Esta respuesta es exactamente lo que estaba buscando, y debería ser la correcta. –

+0

Esta debería ser la respuesta aceptada. –

Cuestiones relacionadas