2012-06-14 3 views
7

Se ho un ramo di caratteristica F e maestro ramo M, quindiGit - Come verificare se un ramo è mai stato fuso in un altro ramo?

git branch --merged 

mentre sul padrone mi mostrerà se F è stato interamente fusa in M, ma come faccio a sapere se sia mai stata fusa?

Ho provato a guardare attraverso il manuale di git-log e da quello che posso dire

git log M..F 

mi mostrerà i giri su F che non sono state fuse in M. Mi piacerebbe vedere l'inverso di che, i giri su F che sono state fuse in M.

ci sono tutta una serie di domande, che sono vicini a questo, ma non sembrano coprire questo particolare case.2

risposta

1

elenca i rami che sono già io rged

git branch --merged 

2. elenca i settori che non sono state fuse (se non è lì che significa che la sua fusione)

git branch --no-merged 
+1

Sì, ma questo non riguarda solo il caso di COMPLETAMENTE unito? Se F è stato fuso in M ​​a un certo punto della sua vita, voglio essere in grado di vederlo. – SimonF

4

Uso git log:

git log feature_branch master --oneline --date-order --merges --reverse -1 

Questo mostrerà vi unite tutti tra feature_branch e master. --reverse emetterà il commit in ordine inverso. E -1 significa mostrare solo il commit one. Pertanto vedrai solo il primo commit unito.

Se si tratta di un'uscita vuota, significa che non viene unito nulla. Se lo desideri, puoi rimuovere lo -1 alla fine per mostrare tutti i commit uniti che iniziano con l'ultimo.

+1

Ahhh questo è interessante, non ho pensato di usare --merges. Non penso che il comando sopra faccia effettivamente quello che tu dici di fare, comunque. Non 'git log master..feature_branch' ti dà i commit che sono in feature_branch ma non master? e poi aggiungendo '--merges' ad esso filtrerà quelli per QUALSIASI unione, non esplicitamente le unioni di feature_branch in master? – SimonF