如何从标签创建新分支?

And*_*rew 482 git git-tag git-branch

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

And*_*rew 806

哇,这比我想象的容易:

git checkout -b newbranch v1.0
Run Code Online (Sandbox Code Playgroud)

  • 正确.请注意,您也可以使用`git reset --hard v1.0`将主分支设置回标记点 (53认同)
  • 如果这由于“<tag> 不是有效提交”或类似错误(通常在处理共享存储库时)而不起作用,请参阅 /sf/ask/2518574971/ git-tag-how-to-create-tags-how-to-checkout-git-remote-tags#35979751 (5认同)
  • @wadesworld的建议可能有效,但是如果有人读过此书,并且不确定100%重置master分支意味着什么,*不要这样做*。 (5认同)

小智 91

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

git branch newbranch v1.0
Run Code Online (Sandbox Code Playgroud)

  • 我认为这应该是公认的答案,因为它确实满足了要求。接受的答案会执行问题中未提及的其他内容。 (3认同)

Tar*_*mar 24

我使用以下步骤从Tag创建新的hotfix分支.

句法

git checkout -b <新分支名称> <TAG名称>

这样做的步骤.

  1. git checkout -b NewBranchName v1.0
  2. 更改pom /发布版本
  3. 舞台变化
  4. git commit -m"更新Hotfix分支的pom版本"
  5. 最后将新创建的分支推送到远程存储库.

git push -u origin NewBranchName

我希望这会有所帮助.


Kir*_* A. 17

我已经解决了以下问题1.从分支机构获取标签2.写下面的命令

Example: git branch <Hotfix branch> <TAG>
    git branch hotfix_4.4.3 v4.4.3
    git checkout hotfix_4.4.3
Run Code Online (Sandbox Code Playgroud)

或者你可以用其他命令

git checkout -b <Hotfix branch> <TAG>
-b stands for creating new branch to local 
Run Code Online (Sandbox Code Playgroud)

一旦你准备好了你的修补程序分支,是时候将该分支移动到github,你可以通过写下面的命令来实现

git push --set-upstream origin hotfix_4.4.3
Run Code Online (Sandbox Code Playgroud)


lpa*_*app 10

在撰写此答案时,最新的 git 惯用用法是以下命令:

git switch -C branch tag
Run Code Online (Sandbox Code Playgroud)


pet*_*ica 5

如果我们想从具有相同名称的标签创建分支,则情况会有些问题。

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

因此,refs/heads/mastermaster分支的真实,显式名称。和refs/tags/cica是名为的标记的确切名称cica

cica从名为标签的名称创建分支的正确命令cica是:

git branch cica refs/tags/cica
Run Code Online (Sandbox Code Playgroud)


amd*_*dev 5

在一个简单的用例中对我有用的唯一解决方案的示例,我在一个分支上,我想从主项目存储库上的标签检出一个新分支(这里是上游)

git fetch upstream --tags
Run Code Online (Sandbox Code Playgroud)

给我吗

From https://github.com/keycloak/keycloak
   90b29b0e31..0ba9055d28  stage      -> upstream/stage
 * [new tag]    11.0.0     -> 11.0.0
Run Code Online (Sandbox Code Playgroud)

然后我可以从这个标签创建一个新分支并在它上面结帐

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

git checkout tags/11.0.0 -b v11.0.0
Run Code Online (Sandbox Code Playgroud)