2012-08-09 18 views
8

beh, ho appena fatto un grosso errore.git branch (senza succursale)

Sto lavorando a un progetto e ho pensato di lavorare nel ramo master.
Così ho aggiunto i file avevo bisogno, li impegna e quando ho provato a spingere di origine ho avuto

Everything is up to date 

ho usato git branch e ottenuto

* (no branch) 
* master 

Così, dello stress, ho messo da parte l'attesa cambia in (nessun ramo) e controlla master. Ora ho perso tutte le mie modifiche, perché non posso controllare il ramo "che non deve essere nominato". Quando ho elencare i rami ho solo

* master 

risposta

12

Non hai perso i cambiamenti se sono stati commessi. Non hai semplicemente un riferimento a loro.

Provare a eseguire git reflog e cercare una riga vicino alla parte superiore che indichi qualcosa come checkout: moving from <commit-id> to master. È quindi possibile utilizzare che <commit-id> per creare un ramo temporaneo per ispezionare le modifiche e portarli verso il ramo master:

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

è possibile unire questo ramo, o semplicemente cherry-pick i commit necessarie.

Spero che questo aiuti.

+0

sei un risparmiatore di vita. grazie mille :) –

+2

'git reflog' è un vero toccasana :) – mamapitufo