我想从现有标记创建一个新的主分支。假设我有一个标签v1.0。如何从这个标签创建一个新的分支?


当前回答

哇,这比我想象的要简单

git checkout -b newbranch v1.0

其他回答

在简单的用例中,我在一个fork上,我想从主项目存储库上的标记签出一个新的分支,这是唯一适合我的解决方案的例子(这里是上游)。

git fetch upstream --tags

给我

From https://github.com/keycloak/keycloak
   90b29b0e31..0ba9055d28  stage      -> upstream/stage
 * [new tag]    11.0.0     -> 11.0.0

然后,我可以从这个标记创建一个新分支并在其上签出

Git checkout -b tags/<name> <newbranch>

git checkout tags/11.0.0 -b v11.0.0

如果你只是想创建一个新的分支,而不是立即对它进行更改,你可以执行以下操作:

git branch newbranch v1.0

我的分支列表(现在只有master)

我的标签列表(有三个标签)

从opus_codec标签切换到新的分支功能/编解码器

git checkout -b feature/codec opus_codec

如果我们想要从具有相同名称的标记创建分支,情况就会变得有点问题。

在这种情况下,以及在类似的情况下,重要的是要知道:分支和标记实际上是.git/refs目录下的单行文本文件,我们可以使用它们在.git下面的路径显式引用它们。树枝在这里被称为“头”,使我们的生活更简单。

因此,refs/heads/master是主分支的真实的、显式的名称。而refs/tags/cica是cica标签的确切名称。

从名为cica的标记创建一个名为cica的分支的正确命令是:

git branch cica refs/tags/cica

我已经解决了以下问题 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