2013-04-04 19 views

risposta

47

ancora più breve:

git branch --contains tags/<tag> 

(funziona per qualsiasi riferimento tree-ish)


Se è possibile trovare which commit a tag refers to:

git rev-parse --verify tags/<tag>^{commit} 
# or, shorter: 
git rev-parse tags/<tag>~0 

Quindi è possibile trovare which branch contain that commit.

git branch --contains <commit> 

Come commented seguito da user3356885, per i rami recuperati (filiali in telecomandi namespace)

git branch -a --contains tags/<tag> 
git branch -a --contains <commit> 
+6

Sulla mia versione di Git, 1.7.1, posso semplicemente fare 'git branch - contiene '. –

+0

@DanMoulding true, ho modificato la risposta per riflettere questo. Inizialmente ero interessato a trovare il commit associato a un tag. – VonC

+2

Cercare il tag che è stato creato sul ramo remoto non produrrà alcun risultato in questo caso. Altre parole, non verranno prodotti risultati per rami che non esistono localmente. L'opzione * -a * dovrebbe essere usata per quello. 'git branch -a - contiene '. Lo stesso funzionerà per i commit. – user3356885

0

Per quanto riguarda @ commento di VonC di trovare il commit a cui fa riferimento un tag, basta usare :

git show <tag> 

Poiché un tag è legato a un commit specifico, può essere usato per mostrare che commit - che ti darà i dettagli di commit completi.

3
git branch --contains tag 

non fa nulla per me, ma ho trovato la mia soluzione a questo problema in gui git.

Inizia in questo modo:

git gui 

(. Sulla mia Ubuntu ho dovuto installare prima con sudo apt-get install git-gui)

Poi ho selezionato la voce di menu Repository -> visualizzare tutti Branch Storia. Nella finestra risultante ho quindi selezionato la voce di menu File -> Elenca riferimenti.

Un'altra finestra è spuntata, elencando tutti i miei tag (e altri riferimenti). Questi sono cliccabili e dopo aver cliccato su uno di questi ho dovuto controllare il frame in basso a sinistra per l'elenco dei rami.Come questo:

Parent: somesha (message) 
Parent: someothersha (another message) 
Child: anothersha (yet another message) 
Branches: branch1, master, remotes/origin/branch2, remotes/upstream/branch1, etc 
Follows: v1.1.2 
Precedes: v1.1.4 
+0

Digita "gitk" da bash e poi File -> Elenca riferimenti ... – ConfusedDeer

6

Se "git branch --contains" non fa nulla, essere sicuri che si sta includendo tutti i rami, i rami sia remote e locali:

git branch -a --contains <tag> 

Dalla aiuto git:

azioni git-ramo specifico: -a, --all lista sia remote-tracking e filiali locali

Problemi correlati