Proprio oggi ho scoperto che un certo codice mancava dal mio repository git. Conoscevo parte del testo mancante e il file in cui si trovava, quindi ho usato git log -S'missingtext' /path/to/file
. Tuttavia, l'unica cosa che è tornata è stata la commit in cui ho aggiunto la riga contenente il testo mancante. Il testo non era presente in testa, e il commit che ha aggiunto che era presente nel mio ramo, quindi sapevo che uno dei commit nella storia della mia filiale doveva essere rimosso, ma non è stato rivelando.Trova quando la linea è stata eliminata
Dopo qualche ricerca manuale, si è scoperto che la linea è stata staccato inavvertitamente mentre risolvere un conflitto per una stampa. Quindi mi chiedo:
- È questo il motivo per cui pickaxe non è riuscito a trovare il commit che ha eliminato la linea?
- Come ho potuto trovato dove "missingtext" è stata eliminata senza scavare attraverso la storia manualmente?
Qualsiasi comprensione su # 1 sarebbe fantastico (ho pensato che git log -S
mi avrebbe dato la mia risposta), ma la mia vera domanda è # 2 in quanto mi piacerebbe essere in grado di evitare questo in futuro.
'log -p' git e'/missingtext' mentre nel 'less' è un 'n' modo sporco rapido per farlo. – nneonneo
Possibile duplicato di [Come faccio a "dare la colpa" a una linea cancellata] (http://stackoverflow.com/questions/4404444/how-do-i-blame-a-deleted-line) – hypehuman