2009-10-31 14 views
20

Per cercare una stringa che è stato aggiunto/rimosso nella storia git posso fareCerca storia git per un cambiamento in un merge commit

git log -S'some text' 

Questa grande opera, con la differenza che non cerca attraverso merge impegna . Come posso ottenere il comando per includere i commit di unione nella ricerca?

risposta

20

sembra che il flag -m mi dà il risultato desiderato

git log -m -S'some text' 

Ho trovato questo su un altro sito, se qualcuno mi potrebbe punto nella direzione di una pagina man che include questo flag che sarebbe grande . Questo non lo include http://ftp.kernel.org/pub/software/scm/git/docs/git-log.html

+0

veda la risposta di seguito per informazioni sulla bandiera -m – opsb

5

Poiché alcuni comandi Git sono costruiti su altri comandi ("plumbing"), spesso ereditano le opzioni da altri comandi. Sono d'accordo che è fastidioso non vedere quelli documentati nelle pagine man o nell'output --help. In questo caso, i git-log aiutare gli Stati:

il comando richiede opzioni applicabili al comando git-rev-list per controllare ciò che viene mostrato e come, e le opzioni applicabili ai comandi git-di Verifica * per controllare in che modo vengono mostrate le modifiche apportate da ogni commit .

In questo caso, troverete l'opzione di cui -mgit-diff-tree:

 
... 
-m 
    By default, git-diff-tree --stdin does not show differences 
    for merge commits. With this flag, it shows differences to 
    that commit from all of its parents. See also -c. 
... 
+0

avevo notato questi "idraulico" comandi come ero alla ricerca di una soluzione a questo problema. Molto utile sapere che i parametri vengono passati a questi comandi più bassi. Saprò di approfondire in futuro. Questo sembra essere un tema con git, c'è un livello di superficie che puoi usare per fare le cose, ma senza conoscere lo strato idraulico puoi facilmente scollarti. – opsb

Problemi correlati