我是 Git 的新手,我正在使用 Mac OS 的 SourceTree,并且有一个关于分支的问题。这是一个非常小的项目,也是我第一次使用版本控制。到目前为止,我对它只有一个非常基本的了解。我通过单击“分支”从我的第二次提交创建一个分支而创建的第一个分支,并且工作正常。然而,我第二次创建分支是在第一次提交之后,SourceTree 不允许我以同样的方式进行。我不得不使用 Checkout 而不是 Branch,它创建了一个分离的头部,然后我不得不命名新分支。我想知道为什么它不允许我以同样的方式创建我的分支。谢谢!
最佳答案
如果您的 master 分支有 2 个提交,并且您从第二个提交创建了第一个分支,您的 HEAD 指向与 master 分支相同的提交,分支命令将从那里开始。
如果你想以第一次提交为起点创建第二个分支,你别无选择首先通过检查它来移动你的 HEAD 在第一次提交上(结果是你的 HEAD 将从 master 分支分离因为它指向不同的提交)。当您的 HEAD 指向适当的提交时,您可以继续创建分支,这个新分支将从第一个提交开始。
这两种情况下创建分支的过程是一样的,唯一的区别是第一次你的起点是master分支的最后一次提交并且你的HEAD是附加到这个分支上的(也就是说HEAD和master指向相同的提交)。在第二个过程中,您想要从不同的提交开始一个分支,这只需要将您的 HEAD 移动到另一个提交上,结果由一个分离的 HEAD 指示。
希望这能帮助你更好地理解 git 背后的逻辑。
如果您想进一步了解 git,请查看本教程:Learn git branching
本教程真的很棒,将帮助您更好地理解 git 背后最重要的机制。
关于git - 为什么 Mac OS 的 SourceTree 不允许我以相同的方式分支两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12327973/