2012-08-09 20 views
8

bueno, acabo de cometer un gran error.git branch (sin rama)

Estoy trabajando en un proyecto, y pensé que estaba trabajando en la rama principal.
por lo que añade los archivos que necesitaba, ellos comprometidos y cuando traté de empujar al origen i tiene

Everything is up to date 

Solía ​​git branch y tiene

* (no branch) 
* master 

Así, en el estrés, guardé la espera de cambios en (sin ramificación) y desprotegido maestro. Ahora perdí todos mis cambios, porque no puedo pagar la rama "que no se llamará". Cuando enumero las ramas solo tengo

* master 

Respuesta

12

No ha perdido los cambios si se han confirmado. Usted simplemente no tiene una referencia con nombre a ellos.

Prueba a ejecutar git reflog y busca una línea cerca de la parte superior que diga algo como checkout: moving from <commit-id> to master. A continuación, puede utilizar ese <commit-id> para crear una rama temporal para inspeccionar los cambios y traerlos a la rama master:

git checkout -b temp-branch <commit-id> 

puede combinar esta rama, o simplemente cereza recoger las confirmaciones necesarias.

Espero que esto ayude.

+0

eres un salvavidas. muchas gracias :) –

+2

'git reflog' es un salvavidas :) – mamapitufo