Obecnie pracuję z repozytorium, które ma wiele gałęzi.
Czy kiedy tworzę tag, odnosi się on do aktualnej gałęzi?
Innymi słowy: za każdym razem, gdy tworzę tag, czy muszę przełączyć się na żądaną gałąź i tag wewnątrz tej gałęzi, aby tag odnosił się do tej gałęzi w tym momencie?
Tagi i gałąź są całkowicie niepowiązane, ponieważ znaczniki odnoszą się do konkretnego zatwierdzenia, a gałąź jest ruchomym odniesieniem do ostatniego zatwierdzenia w historii. Gałęzie znikają, tagi pozostają.
Więc kiedy oznaczysz zatwierdzenie, git nie dba o to, który zatwierdzenie lub gałąź są wyewidencjonowane, jeśli podasz mu SHA1 tego, co chcesz oznaczyć.
Mogę nawet oznaczyć, odwołując się do gałęzi (oznacza to wtedy końcówkę gałęzi), a później powiedzieć, że końcówka gałęzi znajduje się gdzie indziej (
git reset --hard
na przykład) lub usunąć gałąź. Jednak utworzony przeze mnie tag nie będzie się poruszał.źródło
Dzwoniąc po prostu
git tag <TAGNAME>
bez żadnych dodatkowych parametrów, Git utworzy nowy tag z twojego aktualnego HEAD (tj. HEAD twojej aktualnej gałęzi). Dodając kolejne zatwierdzenia do tej gałęzi, gałąź HEAD będzie nadążać za tymi nowymi zatwierdzeniami, podczas gdy znacznik zawsze odnosi się do tego samego zatwierdzenia.Podczas wywoływania
git tag <TAGNAME> <COMMIT>
możesz nawet określić, którego zatwierdzenia użyć do utworzenia tagu.Niezależnie od tego, znacznik jest nadal po prostu „wskaźnikiem” do określonego zatwierdzenia (a nie gałęzi).
źródło
Możemy stworzyć tag dla jakiegoś wcześniejszego zatwierdzenia:
na przykład:
źródło
Jeśli chcesz oznaczyć oddział, w którym się znajdujesz, wpisz:
i popchnij gałąź za pomocą:
źródło
Jeśli chcesz stworzyć tag z gałęzi, która jest podobna do
release/yourbranch
itp. Następnie powinieneś użyć czegoś w rodzajuPo utworzeniu odpowiedniego tagu, jeśli chcesz przekazać tag do zdalnego, użyj polecenia
źródło