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


Ответы:


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

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

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


2
Пожалуйста, не используйте скриншоты, если также достаточно скопировать текстовую вставку.
Петер - Восстановить Монику
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.