Domanda

Sto usando Git per il mio progetto e cercando di seguire le migliori prassi:

  1. Io lavoro su un ramo argomento
  2. Quando si è pronti, ho unire i ramo argomento nel mio dev ramo utilizzando git merge --squash. Ciò mantiene il mio dev ramo pulita.
  3. Ogni volta che il dev ramo è stabile e la squadra decide che è tempo per un rilascio, si fondono il dev ramo in Master ramo, senza utilizzando squash e tag che commettono come una liberazione versione.

Questo dovrebbe mantenere la nostra storia, e l'utilizzo di gitk, possiamo vedere dove tutti i commit sono disponibili in. Tuttavia, voglio essere in grado di vedere solo i commit applicate al Master ramo. Ho provato:

git log master
git show-branch

Nessuno di questi spettacolo solo la storia del Master ramo. C'è un modo per farlo facilmente?

È stato utile?

Soluzione

Se ti sto comprensione correttamente, si vuole vedere le unioni di nuovo in padrone, ma non la storia di quei unioni. Credo che:

git log --merges

ti darà quello che vuoi.

UPDATE:. L'aggiunta di --first-genitore dovrebbe risolvere questo dai suoni di esso

git log --merges --first-parent
  

- primo genitore

Follow only the first parent commit upon seeing a merge commit.
     

Questa opzione può dare una migliore visione d'insieme   quando si visualizza l'evoluzione di un   argomento particolare ramo, perché   si fonde in un ramo argomento tendono ad essere   solo sulla regolazione di aggiornamento   monte di volta in volta, e questo   opzione consente di ignorare il   individuali impegna portato al tuo   la storia di un siffatto fusione.

Altri suggerimenti

Purtroppo, Git non memorizza le informazioni ramo per un commit, e si impegna a non appartengono ad un ramo. Filiali in Git sono solo "in movimento tag" in un corso di commit e NON una sequenza di commit come ci si aspetterebbe.

Quindi, in pratica non è possibile mostrare commit che appartengono ad un ramo in quanto non esiste il concetto di Git.

Dato che Git non memorizza informazioni su quale ramo è nascente, da cui altri, non v'è alcun modo automatico per indovinare quale ramo che si può desiderare di essere mostrato.

A questo proposito, --first-parent non sarà in ultima analisi, di aiuto, soprattutto perché è facile avere più di un master, per esempio. Prendere in considerazione:

wc1$ git clone git://shared.com/repo
wc1$ (hack code, git commit)
wc2$ git clone git://shared.com/repo
wc2$ (hack code, git commit, git push somewhere)
wc1$ git fetch origin; git merge origin/master; git push somewhere master;

(Sentitevi liberi di prendere un progetto a caso e fare questo esercizio.) Grafico esso. Quindi non si può per significato Graph "un solo ramo", anche se i commit sono stati etichettati con il nome del ramo sono state fatte su (perché entrambi sono master).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top