从主Git分支-b“分支名称”创建?

时间:2020-06-10 18:20:25

标签: git

我正在使用命令外壳程序,使用命令git branch -b“ branchname”创建git分支。分支将是空的,没有文件,还是会从master创建分支?当我在文件夹上执行dir时,我会看到文件列表。

谢谢!

1 个答案:

答案 0 :(得分:2)

当您运行git branch X时,分支X是在当前签出的提交(即HEAD)上创建的。如果您当前是主管理员,则可能为master;您可以使用git rev-parse HEAD进行验证。

请注意,git branch X不会签出分支。创建分支后,必须使用git checkout X。要将两者组合成一个命令,可以使用git checkout -b X

要在特定的提交处创建分支,请为git branchgit checkout -b提供revspec作为第二个参数:

  • git branch X master:在master分支的最新提交时创建分支X。
  • git checkout -b X master:在master分支的最新提交时创建并签出分支X。

此时Xmaster是相同的:它们都指向相同的提交,因此包含相同的历史记录并在签出时显示相同的文件。

如果要创建一个与现有分支没有任何关系的新分支,则可以使用git checkout --orphan X master

--orphan <new_branch>

<new_branch>开始创建一个名为<start_point>的新孤立分支,然后切换到该分支。在这个新分支上进行的第一次提交将没有父母,这将是与所有其他分支和提交完全脱节的新历史的根源。

调整索引和工作树就像以前运行git checkout <start_point>一样。这样一来,您就可以轻松运行<start_point>来进行根提交,从而开始一个新的历史记录,该记录记录了一组类似于git commit -a的路径。

当您要通过提交发布树而不公开其完整历史记录时,这可能很有用。您可能想要执行此操作,以发布项目的开放源分支,该分支的当前树是“干净的”,但是其完整历史记录包含专有的代码或以其他方式妨碍代码的代码。

如果您要启动一个断开的历史记录,该历史记录记录的一组路径与<start_point>中的路径完全不同,则应在运行孤儿分支后通过运行{清除索引和工作树{1}}从工作树的顶层开始。然后,您将准备好准备新文件,重新填充工作树,从其他位置复制它们,提取压缩包等。

相关问题