我正在阅读Rails Tutorial一书,一遍又一遍,作者要求读者运行以下两个命令:
$ git checkout master
$ git checkout -b a
Run Code Online (Sandbox Code Playgroud)
我理解这些命令的作用:它们检查master分支,然后创建并检出一个名为的新分支a.
为什么我们需要第一线呢?它有所不同,还是我可以把它留下来?
为什么我们需要第一线呢?[...]
这是一种稍微迂回的方式来确保新分支a指向同一个提交master.
git checkout -b newbranch呢要修改想法,您可以将HEAD指针视为地铁地图上的"你在这里"标记,即您的提交图.现在,以下命令,
git checkout -b newbranch
Run Code Online (Sandbox Code Playgroud)
创建并检出一个新的分支newbranch,该分支指向(直接或间接)指向的同一提交HEAD.例如,如果您的仓库看起来如下,

通过跑步git checkout -b newbranch,你最终会得到

但是,Michael Hartl(Rails教程的作者)希望您创建并签出指向特定提交的新分支:master分支的提示(即master分支指向的提交):

master呢?通过要求你运行
git checkout master
Run Code Online (Sandbox Code Playgroud)
迈克尔哈特尔只是确保你的HEAD点(间接)到正确的提交,即提示master:

然后,跑步
git checkout -b newbranch
Run Code Online (Sandbox Code Playgroud)
肯定会在需要的地方创建新的分支:

不过,首先退房master可能看起来有点笨拙.您实际上可以将这两个命令压缩为一个:
git checkout -b newbranch master
Run Code Online (Sandbox Code Playgroud)
无论你在repo中的哪个HEAD位置(即指向哪里),这个命令都会创建并签出一个新的分支newbranch,该分支指向了尖端master.
但是,因为Rails教程旨在满足Git的新手,因为
git checkout -b newbranch master
Run Code Online (Sandbox Code Playgroud)
有点先进,可能不那么直观
git checkout master
git checkout -b newbranch
Run Code Online (Sandbox Code Playgroud)
你不能真的责怪迈克尔哈特尔推荐后者.
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |