3

我是 Git 新手,我正在为 Mac OS 使用 SourceTree,并且对分支有疑问。这是一个非常小的项目,这是我第一次使用版本控制。到目前为止,我对它只有一个非常基本的了解。我通过单击“分支”创建的第一个分支从我的第二次提交创建一个分支,并且效果很好。然而,我第二次创建分支是在我的第一次提交之后,SourceTree 不会让我以同样的方式这样做。我不得不使用 Checkout 而不是 Branch,它创建了一个分离的头,然后我不得不命名新的分支。我想知道为什么它不允许我以同样的方式创建我的分支。谢谢!

4

1 回答 1

1

如果您的 master 分支有 2 个提交,并且您从第二个提交创建第一个分支,则您的 HEAD 指向与 master 分支相同的提交,并且分支命令将从那里开始。

如果你想以第一次提交为起点创建第二个分支,你别无选择首先通过检查它来移动你的 HEAD (结果是你的 HEAD 将与主分支分离,因为它是指向不同的提交)。当您的 HEAD 指向适当的提交时,您可以继续创建分支,并且这个新分支将从第一个提交开始。

两种情况下创建分支的过程都是一样的,唯一的区别是你第一次的起点是master分支的最后一次commit并且你的HEAD是附加到这个分支上的(也就是说HEAD和master都指向相同的提交)。在第二个过程中,您想从不同的提交开始一个分支,只需将您的 HEAD 移动到另一个提交上,结果由分离的 HEAD指示。

希望这能帮助你更好地理解 git 背后的逻辑。

如果您想进一步了解 git,请查看本教程:学习 git 分支

这个教程真的很棒,将帮助你更好地理解 git 背后最重要的机制。

于 2014-09-02T19:40:36.763 回答