2013-04-04 11 views

Odpowiedz

47

jeszcze krócej:

git branch --contains tags/<tag> 

(działa dla jakiegokolwiek odniesienia drzewa-owski)


Jeśli znajdziesz which commit a tag refers to:

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

Następnie można znaleźć which branch contain that commit.

git branch --contains <commit> 

Jak commented poniżej user3356885 dla pobranego oddziałów (oddziały w obszarze nazw pilotów)

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

Na mojej wersji Git, 1.7.1, mogę po prostu zrobić 'git branch - zawiera '. –

+0

@DanMoulding true, zredagowałem odpowiedź, aby to odzwierciedlić. Początkowo byłem zainteresowany znalezieniem załącznika dołączonego do tagu. – VonC

+2

Poszukiwanie tagu utworzonego na zdalnym oddziale nie przyniesie żadnych wyników w tym przypadku. Innymi słowy, żadne wyniki nie zostaną wygenerowane dla oddziałów, które nie istnieją lokalnie. Należy użyć opcji * -a *. 'git branch -a - zawiera numer '. To samo będzie działać w przypadku zatwierdzeń. – user3356885

0

W odniesieniu do @ komentarz VonC o znalezienie commit odwołuje tagu, wystarczy użyć :

git show <tag> 

Ponieważ znacznik jest powiązany z konkretnym zatwierdzeniem, może być używane do pokazywania tego zatwierdzenia - które da ci pełne szczegóły zatwierdzenia.

3
git branch --contains tag 

nie robi nic dla mnie, ale ja znalazłem rozwiązanie tego problemu w git gui.

Uruchom go tak:

git gui 

(. Na moim Ubuntu musiałem zainstalować go najpierw sudo apt-get install git-gui)

Potem wybrany punkt menu Repository -> wizualizację wszystkich firm Historia. W wynikowym oknie wybrałem pozycję menu Plik -> Lista odnośników.

Pojawiło się kolejne okno z listą wszystkich moich tagów (i innych odniesień). Są one klikalne i po kliknięciu jednego z nich musiałem po prostu sprawdzić lewą ramkę po lewej stronie listy gałęzi.Tak:

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

Wpisz "gitk" z bash, a następnie File -> List References ... – ConfusedDeer

6

Jeśli "git branch --contains" nie robi nic, upewnij się, że jesteś w tym wszystkie oddziały, zarówno lokalnych i zdalnych oddziałów:

git branch -a --contains <tag> 

z pomocy git:

Konkretne działania git-Branża: -a, --all lista zarówno zdalnego śledzenia i lokalne oddziały