A meno che non si siano compromessi i dati nella directory .git
, è improbabile che tu abbia perso qualcosa. Potresti avere un pasticcio terribile da ripulire, e potrebbe richiedere molto tempo per capire cosa hai fatto e dove si trova, ma probabilmente non hai perso nulla.
Questa è la buona notizia.
La cattiva notizia è che sarà diabolicamente difficile per chiunque aiutarti molto.
È probabile che sia necessario identificare tutti i rami e tracciare indietro i commit su ciascuno. Dovrai decidere se tutte quelle operazioni 'git commit -a
' sono state una buona idea. Sembra improbabile, quindi potrebbe essere necessario eseguire le unioni correttamente, lavorando dal prossimo all'ultimo commit su ciascun ramo.
Devi anche decidere cosa stavi davvero cercando di fare.
Sembra che tu abbia voluto unire un certo numero di rami - chiamarli BranchA, BranchB e BranchC - sul ramo principale, master. Ma non è chiaro che è quello che hai provato.
Dato che le cose sono un pasticcio, consiglio di creare un altro ramo che possiamo chiamare "Correzione". Crea questo dal capo del ramo principale.Quindi, unire la versione appropriata di ciascuna di BranchA, BranchB e BranchC nel ramo Fixup. Ad ogni fase, controlla che il codice funzioni correttamente - passa la sua suite di test, ecc. Controlla ciascuna unione separatamente sul ramo Fixup.
Quando si è certi che il ramo Fixup è corretto, tornare al ramo master e unire il ramo Fixup al master.
Charles Bailey rende il suggerimento molto sensibile (in un commento alla domanda): prima di fare qualsiasi altra cosa, fare una copia di backup di quello che hai, esattamente come è attualmente. Solo allora procedere con qualsiasi operazione di pulizia. E il suo suggerimento di ottenere aiuto interattivo è anche ragionevole.
fonte
2010-08-21 23:51:21
ripristinare una di backup funziona sempre per me –
In primo luogo, eseguire un backup completo del vostro albero di lavoro e 'cartella .git' ora e metterlo in un posto sicuro, preferibilmente in sola lettura. Da quello che hai detto sembra molto improbabile che tu abbia perso il lavoro (no 'reset --hard', e sembra che tu stia scherzando con le cose impegnate sui rami). Una volta che hai finito, trova un esperto di git su un canale interattivo da qualche parte in grado di parlare attraverso come cercare e ripristinare il tuo stato precedente. StackOverflow non è quasi certamente il forum per questo perché hai bisogno di aiuto interattivo, non solo di domande e risposte. –
Grazie a tutti, userò tutto il suggerimento e capirò qualcosa, non posso ancora scegliere una risposta. –