我是Git的新手,我正在使用SourceTree for Mac OS,并对分支有疑问。这是一个非常小的项目,这是我第一次使用版本控制。到目前为止,我对它只有非常基本的了解。我通过点击“分支”来创建第一个分支,从我的第二个提交创建一个分支,并且工作正常。但是,我第二次创建分支是在第一次提交时,SourceTree不会让我以同样的方式执行。我不得不使用Checkout而不是Branch,它创建了一个独立的头,然后我必须命名新的分支。我想知道为什么它不允许我以同样的方式创建我的分支。谢谢!
答案 0 :(得分:1)
如果您的主分支有2个提交,并且您从第二个提交创建第一个分支,则HEAD指向与主分支相同的提交,而分支命令将从那里开始。
如果你想以第一个提交作为起点创建第二个分支,你可以选择先通过检查它来移动第一个提交的HEAD(结果是你的HEAD将从主分支中分离出来)因为它指向不同的提交)。当您的HEAD指向相应的提交时,您可以继续创建分支,这个新分支将从第一次提交开始。
创建分支的过程在两种情况下都是相同的,唯一的区别是第一次起始点是主分支的最后一次提交,并且HEAD附加到此分支(这意味着HEAD和master指向同一个提交)。在第二个过程中,您希望从另一个提交启动分支,只需要在另一个提交上移动您的HEAD,结果由分离的HEAD 指示。
希望这能帮助您更好地理解git背后的逻辑。
如果您想进一步了解git,请查看本教程:Learn git branching
本教程非常棒,可以帮助您更好地理解git背后最重要的机制。