Как создать новую ветку из тега?

528

Я хотел бы создать новую основную ветку из существующего тега. Скажи, у меня есть тег v1.0. Как создать новую ветку из этого тега?

Эндрю
источник
возможный дубликат тега Checkout GIT
Грег Бэкон,

Ответы:

877

Вау, это было проще, чем я думал

git checkout -b newbranch v1.0
Эндрю
источник
53
Правильный. Обратите внимание, что вы также могли просто установить основную ветвь обратно в точку тега с помощьюgit reset --hard v1.0
wadesworld
3
Если это не работает из-за того, что «<tag> не является допустимым коммитом» или схожей ошибкой (часто при работе с общим репозиторием), обратитесь к stackoverflow.com/questions/35979642/…
SalmonKiller
6
Предложение от @wadesworld может сработать, но если кто-то прочитает это и не будет уверен на 100%, что означает сброс основной ветки, не делайте этого .
Натан Лонг
Это лучший ответ, который я нашел здесь - stackoverflow.com/a/35979751/3145960
Реаз Муршед
101

Если вы просто хотите создать новую ветку без немедленного перехода на нее, вы можете сделать следующее:

git branch newbranch v1.0
user1069067
источник
6
Я думаю, что это должен быть принятый ответ, поскольку он делает именно то, что требуется. Принятый ответ делает что-то еще, что не указано в вопросе.
Хавьер Васкес
40

Я использовал следующие шаги для создания новой ветви исправлений из тега.

Синтаксис

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

Шаги, чтобы сделать это.

  1. git checkout -b NewBranchName v1.0
  2. Внесите изменения в версии pom / release
  3. Сценические изменения
  4. git commit -m "Обновление версий pom для ветви исправлений"
  5. Наконец, добавьте свою вновь созданную ветку в удаленный репозиторий.
git push -u origin NewBranchName

Я надеюсь, что это поможет.

Тарун Кумар
источник
17

Я решил проблему, как показано ниже 1. Получите тег из вашей ветки 2. Напишите ниже команду

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

или вы можете сделать с другой командой

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

Когда вы будете готовы с вашей веткой исправлений, пришло время переместить эту ветку на github, вы можете сделать это, написав следующую команду

git push --set-upstream origin hotfix_4.4.3
Киртикумар А.
источник
5

Ситуация становится немного проблематичной, если мы хотим создать ветку из тега с тем же именем .

В этом и в аналогичных сценариях важно знать: ветви и теги на самом деле являются однострочными текстовыми файлами в .git/refsкаталоге, и мы можем ссылаться на них явно, используя их патчи ниже .git. Филиалы называются здесь «головами», чтобы сделать нашу жизнь проще.

Таким образом, refs/heads/masterэто настоящее, явное имя masterветви. И refs/tags/cicaэто точное имя тега с именемcica .

Правильная команда для создания ответвления, названного cicaпо названному тегу cica:

git branch cica refs/tags/cica
Петер - Восстановить Монику
источник
4

Мой список филиалов (только мастер сейчас)

список филиалов

Мой список тегов (есть три тега)

список тегов

Переключиться на новую ветку / кодек из тега opus_codec

git checkout -b feature/codec opus_codec

переключиться на филиал

eranga
источник
2
Пожалуйста, не используйте скриншоты, если также достаточно скопировать текстовую вставку.
Петер - Восстановить Монику