Jak utworzyć nowy oddział z tagu?

528

Chciałbym utworzyć nową gałąź główną z istniejącego tagu. Powiedz, że mam tag v1.0. Jak utworzyć nowy oddział z tego tagu?

Andrzej
źródło
możliwy duplikat tagu GIT kasy
Greg Bacon

Odpowiedzi:

877

Wow, to było łatwiejsze niż myślałem:

git checkout -b newbranch v1.0
Andrzej
źródło
53
Poprawny. Zauważ, że mógłbyś również ustawić gałąź master z powrotem do punktu tagu za pomocągit reset --hard v1.0
wadesworld
3
Jeśli to nie działa z powodu „<tag> nie jest prawidłowym zatwierdzeniem” lub podobnego błędu (często podczas pracy na współdzielonym repozytorium), zapoznaj się z stackoverflow.com/questions/35979642/...
SalmonKiller
6
Sugestia z @wadesworld mogłaby działać, ale jeśli ktoś to przeczyta i nie jest w 100% pewien, co to znaczy zresetować gałąź master, nie rób tego .
Nathan Long,
To jest lepsza odpowiedź, którą znalazłem tutaj - stackoverflow.com/a/35979751/3145960
Reaz Murshed
101

Jeśli chcesz po prostu utworzyć nowy oddział bez natychmiastowej zmiany go, możesz wykonać następujące czynności:

git branch newbranch v1.0
użytkownik1069067
źródło
6
Myślę, że powinna to być zaakceptowana odpowiedź, ponieważ robi dokładnie to, co jest wymagane. Przyjęta odpowiedź stanowi coś, czego nie podano w pytaniu.
Javier Vazquez
40

Wykonałem następujące kroki, aby utworzyć nową gałąź poprawki z tagu.

Składnia

git checkout -b <New Branch Name> <TAG Name>

Kroki, aby to zrobić.

  1. git checkout -b NewBranchName v1.0
  2. Wprowadź zmiany w wersjach pom / release
  3. Zmiany sceniczne
  4. git commit -m „Zaktualizuj wersje pom dla gałęzi poprawki”
  5. Wreszcie wypchnij nowo utworzony oddział do zdalnego repozytorium.
git push -u origin NewBranchName

Mam nadzieję, że to pomoże.

Tarun Kumar
źródło
17

Rozwiązałem problem jak poniżej 1. Pobierz tag z oddziału 2. Napisz poniżej polecenie

Example: git branch <Hotfix branch> <TAG>
    git branch hotfix_4.4.3 v4.4.3
    git checkout hotfix_4.4.3

lub możesz zrobić z innym poleceniem

git checkout -b <Hotfix branch> <TAG>
-b stands for creating new branch to local 

kiedy będziesz gotowy z gałęzi poprawek, nadszedł czas, aby przenieść tę gałąź do github, możesz to zrobić, pisząc poniżej polecenia

git push --set-upstream origin hotfix_4.4.3
Kirtikumar A.
źródło
5

Sytuacja staje się nieco problematyczna, jeśli chcemy utworzyć gałąź ze znacznika o tej samej nazwie .

W tym i w podobnych scenariuszach ważne jest, aby wiedzieć: gałęzie i znaczniki są w rzeczywistości jednowierszowymi plikami tekstowymi w .git/refskatalogu, a my możemy odwoływać się do nich jawnie za pomocą ich ścieżek poniżej .git. Gałęzie nazywane są tutaj „głowami”, aby uprościć nam życie.

Tak więc refs/heads/masterjest to prawdziwa, wyraźna nazwa masteroddziału. I refs/tags/cicajest to dokładna nazwa znacznika o nazwie cica.

Prawidłowe polecenie utworzenia gałęzi o nazwie cicaze znacznika o nazwie cicato:

git branch cica refs/tags/cica
peterh - Przywróć Monikę
źródło
4

Moja lista oddziałów ( teraz tylko master )

lista oddziałów

Moja lista tagów (mają trzy tagi)

lista znaczników

Przejście na nową gałąź funkcji / kodeka z opus_codec tagu

git checkout -b feature/codec opus_codec

przejdź do oddziału

eranga
źródło
2
Proszę nie używać zrzutów ekranu, jeśli wystarczyłoby również kopiowanie i wklejanie tekstu.
peterh - Przywróć Monikę