2012-01-05 11 views
10

L'altro giorno stavo cercando di inviare alcune modifiche al server remoto.Possibile perdita di alcune modifiche tramite git

Continuavo a ricevere un errore, quindi ho cercato di vedere su quale ramo ero.

Ho visto che ero un ramo indefinito a livello locale, il che era davvero strano, quindi ho controllato il master e sono riuscito a spingere.

Appena verificato l'unione e nessuna delle mie modifiche erano lì. Non sono qui localmente. Oltre 10 ore di lavoro e non riesco a trovarlo da nessuna parte.

Ho fatto una gitk e non vedo nessuna delle mie modifiche. Vedo una fusione di master che assomiglia a questo:

Author: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Committer: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Parent: 1a294db3a244d7aeaafbc99c986af86ce7cf17da (Merge branch 'master' of https://github.com/thing/thing) 
Parent: 8ed995c7a5a370333ab27485be07f6a5f647e8d4 (added subscription button to edit profile section) 
Child: 0dbf7e53737c0e7ee7ab908812299c1d60ef0c46 (removed coffee icon on getting started) 
Branches: master, remotes/origin/master 
Follows: 
Precedes: 

    Merge branch 'master' of https://github.com/thing/thing 

io non sono l'unico a impegnarsi in questo progetto, non so come ho fatto su un ramo non definita a livello locale. Qualcuno può suggerire una correzione? Preoccupato per perdere molto lavoro.

grazie.

+0

È possibile arrivare solo su un "ramo indefinito" (presumo si intenda dire testa storta?) Attraverso le proprie azioni. Potresti aver tentato di unire e non aver notato che c'erano conflitti. – meagar

+0

@meagar: Unisci, conflitti o no, non separa HEAD. Rebase però! – Cascabel

+0

@Jefromi Vero. Sono abituato a 'git pull --rebase'ing – meagar

risposta

17

check

git reflog 

che vi darà una storia di operazioni, e se le modifiche sono state controllate in, saranno in una revisione da qualche parte in quel registro.

Si potrebbe anche guardare l'output:

git rev-list --all --header HEAD 

Questo mostrerà un grande pezzo di ciò che è nel repository. Potrebbe essere necessario lavorare con -n per limitare, e l'output è un po 'confuso. Dai un'occhiata alla pagina man per git-rev-list per ulteriori informazioni. Speriamo che questo aiuti a capire dove sei.

È inoltre possibile creare un ramo alla posizione attuale:

git branch my temporary 

Quindi utilizzare gitk

gitk --all 

per avere un'idea troppo.

+0

omg, che l'ho trovato, grazie mille. Non posso ancora contrassegnarlo come risposta, ma lo farò quando scadrà il limite. –

+0

Recentemente ho scoperto il reflog solo dopo che una situazione simile mi è capitata mentre stavo usando git-svn! Pensavo di essere condannato, tre giorni di lavoro in bilico, penso di aver quasi pianto quando ho trovato la revisione! – PlexQ

+0

È così che ho sentito, è stato fantastico scoprire che era ancora lì. –

Problemi correlati