2010-04-01 15 views
5

Sul mio posto di lavoro abbiamo un ramo "principale" che rappresenta il codice pubblicato. Per apportare una modifica, controllo una copia di lavoro, creo un ramo argomento, eseguo il commit nel ramo dell'argomento, unisco il ramo dell'argomento in master e spingo.Come posso "git log" solo il codice pubblicato nel trunk?

Per piccole modifiche, potrei impegnarmi direttamente nel master, quindi premere.

Il mio problema è che quando uso "git log", non mi interessa i miei rami di argomenti nella mia copia di lavoro locale. Voglio solo vedere le modifiche al ramo master sul server git remoto e condiviso. Inoltre, se uso --stat o -p o uno dei loro amici, voglio vedere i file e le modifiche associate con il commit di unione per il master, non associato ai loro commit di branch originali (che, come ho detto, non lo faccio non voglio vedere affatto).

Come faccio a fare questo?

+0

try git log --merges. Reverse è git log --no-merges. –

+0

git log --merges ometterebbe il commit direttamente al ramo principale. --stat non assocerebbe le modifiche che si verificano in commit di topic branch con commit di unione, neanche. Quindi - l'energia non è esattamente quello che voglio. –

risposta

1

Sembra che tu voglia diff, e non registri, poiché sembra che tu voglia un grande elenco di --stat, o -p, invece di averlo suddiviso per il commit in cui era originariamente accaduto.

Questo mostrerà il diff di ciò che il ramo principale ha (dopo l'unione nel ramo dell'argomento) rispetto alla base di unione tra origine/master e master. La cosa importante qui è usare "..." invece di "..".

Se si desidera visualizzare tutto questo prima di unire l'argomento in master, è possibile sostituire l'ultimo "master" nell'esempio precedente con il nome del ramo dell'argomento o lasciarlo completamente vuoto, se si dispone attualmente del proprio ramo dell'argomento verificato.

git diff [--stat] origin/master... 
3

Questo dovrebbe fare il trucco:

git log origin/master 

Si consiglia di fare una prima git fetch di abbattere tutti i nuovi commit dal terminale remoto (questo non li fondono nelle vostre sezioni locali) .

0

È possibile eseguire git log --graph --oneline che indica quali commit si trovano nel ramo corrente (sebbene non escluda quelli non presenti nell'elenco).

Se si utilizza git-svn, git log --grep git-svn-id mostrerà solo i commit con git-svn-id nel messaggio di log (che viene aggiunto da git quando un commit viene inviato a svn).

Problemi correlati