Questo mi sta facendo impazzire.Git: Trova il codice cancellato
Come trovare il codice eliminato?
Ho finito per trovare dove è stato creato con questo:
$ git log --pretty=oneline -S'some code'
E questo è abbastanza buono, ma ero anche curioso di scoprire dove ha ottenuto cancellato, e finora, niente da fare.
In primo luogo, ho provato git diff HEAD..HEAD^|grep 'some code'
, espandendo l'intervallo ogni volta, fino a quando ho trovato le linee in cui è stato rimosso. Bello, suppongo di averlo trovato nell'intervallo HEAD^^..HEAD^^^
, quindi faccio git show HEAD^^^
e git show HEAD^^
con grep
, ma il codice non si trova da nessuna parte!
poi ho letto un po 'su git bisect
, e abbastanza sicuro, mi dà una singola revisione in cui il colpevole dovrebbe essere ... Anche in questo caso, git show rev|grep 'some code'
arriva a mani vuote ...
Cosa? Che cosa sto facendo di sbagliato?
Grazie!
Sta dicendo che quando si fa fondamentalmente quanto segue si ottiene nessun colpo ?:
Se è così, sembra non chiacchiere .... se è in 'log', dovrebbe essere visibile in' mostra' ... giusto? O forse sto fraintendendo la domanda. – metasimÈ passato un po 'di tempo da quando ero in questa situazione e non si è presentato di nuovo, quindi non posso testare il tuo comando. Grazie comunque, potrebbe rivelarsi utile per qualcuno. – Ivan
Vecchio post/commento qui, ma esattamente quello di cui avevo bisogno comunque. @ SimeonFitch la tua sintassi ha funzionato perfettamente per me, per trovare ed elencare le linee di codice in questione. Un'aggiunta che ho trovato utile è stata l'uso dell'opzione '--context = n' grep per mostrare abbastanza righe prima/dopo per sapere qual è il nome del file (ci sono altre opzioni di grep che potrebbero essere d'aiuto anche con questo). Quindi nel mio caso il secondo comando era: git show $ SHAHIT | grep --context = 30 'some code' –