Git 如何从特定的提交中创建一个新的分支

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 如何从特定的提交中创建一个新的分支相关的知识,希望对你有一定的参考价值。

参考技术A 有时候我们希望找到一个提交历史,然后从这个提交历史中创建一个分支。

很多人应该都会使用命令行工具来做,其实 IDEA 已经帮你做了。

IDEA

首先在 IDEA 中找到 Git,然后找到你的提交历史。

在找到提交历史后,可以选择鼠标的右键。

然后选择新分支。

你就可以从当前的提交历史中来创建一个新的分支了。

Source Tree

使用 SourceTree 也是一样的。

通过在提交历史中单击右键,然后选择分支,你就可在当前指定的提交历史中来创建一个新的分支了。

https://www.ossez.com/t/git/13981

如何在分离的 HEAD 中创建分支?

【中文标题】如何在分离的 HEAD 中创建分支?【英文标题】:How can I create a branch in a detached HEAD? 【发布时间】:2021-08-30 22:09:58 【问题描述】:

在使用 git 时,我有两个分支。一点指向原点/主控。另一个到不同的分支。中间有一系列提交。

在 origin/master 之后的一个提交有这个提交:

97bc89a  edited to build correctly

我是这样的

git checkout 97bc89a

我得到了

you are in 'detached HEAD'

它还说我可以通过

创建一个新分支
  git switch -c <new-branch-name>

我以前从未使用过该命令。我打算做git checkout -b &lt;new-branch-name&gt;

有什么不同吗?怎么样?

【问题讨论】:

结账和切换的区别请参考***.com/q/57265785/8280135 您的标题问题有点奇怪,因为您的问题中有答案。 :) 当你分离时,git switch -c new-branchgit checkout -b new-branch 都会从你当前的提交中创建一个新的分支。是的,它们是一样的。此外,将字母大写为checkout -Bswitch -C 将覆盖分支,即使它已经存在。 【参考方案1】:

有什么不同吗?怎么样?

其实并没有什么不同。问题是checkout 严重超载。因此,在 2019 年,Git 更新了两个新命令,switchrestore,它们在它们之间执行,具有更高的清晰度和可预测性,checkout 过去所做的大部分工作。它们被称为“实验性”,但我一直很高兴地使用它们。

【讨论】:

以上是关于Git 如何从特定的提交中创建一个新的分支的主要内容,如果未能解决你的问题,请参考以下文章

如何从旧提交创建新的 Git 分支? [复制]

在 Git 中获取从 master 到分支的更改

git tag 重写

尽管提交,Git 创建了一个新分支......如何解决这个问题?

如何禁止GitLab分支被push

git - 如何判断提交属于哪个分支?