为什么要在创建新分支之前检查 master?
Why check out master before creating a new branch?
我正在阅读 Rails Tutorial book,作者一遍又一遍地要求 reader 到 运行 以下两个命令:
$ git checkout master
$ git checkout -b a
我明白这些命令的作用:它们检出 master
分支,然后创建并检出一个名为 a
.
的新分支
为什么我们需要第一行?它有什么不同吗,还是我可以忽略它?
当你分支时,你从一个特定的提交分支。检查 master 确保您的新分支从 master 分支的头部(最近提交)开始。
创建分支时将以创建分支时的开始提交。从 Master HEAD 创建它是一种常见的模式,但这取决于您要遵循的分支工作流程。拥有 git 工作流程很重要,项目中的所有人都遵循相同的模式,以便所有成员的可维护性和协作。检查 this link 以查看一些最常见的 git 工作流程。
TL;DR
Why do we need the first line at all? [...]
这是确保新分支 a
指向与 master
相同的提交的一种稍微迂回的方法。
更详细的回答
git checkout -b newbranch
的作用
为了修正想法,您可以将 HEAD
指针视为作为您的提交图的地铁地图上的 You-are-here 标记。现在,下面的命令,
git checkout -b newbranch
创建并签出一个名为 newbranch
的新分支,该分支指向 HEAD
(直接或间接)指向 的同一提交。例如,如果您的存储库如下所示,
通过 运行宁 git checkout -b newbranch
,你最终会得到
Michael Hartl 带你去的地方
但是,Michael Hartl(Rails Tutorial 的作者)希望您创建并检出一个指向特定提交的新分支 :您的提示master
分支(即 master
分支指向的提交):
那么,为什么要先查看 master
?
请你运行
git checkout master
Michael Hartl 只是确保您的 HEAD
指向(间接)正确的提交,即 master
:
的提示
然后,运行宁
git checkout -b newbranch
肯定会在需要的地方创建新分支:
更直接的方法:两只鸟,一块石头...
不过,必须首先检查 master
似乎有点笨拙。您实际上可以将这两个命令压缩为一个:
git checkout -b newbranch master
无论您在存储库中的哪个位置(即 HEAD
指向的位置),此命令都将创建并检出一个名为 newbranch
的新分支,该分支指向 [=17= 的顶端].
但是,因为 Rails 教程是针对 cater for people who are new to Git 的,并且因为
git checkout -b newbranch master
比
更高级,但可能更不直观
git checkout master
git checkout -b newbranch
你真的不能怪 Michael Hartl 推荐了后者。
我正在阅读 Rails Tutorial book,作者一遍又一遍地要求 reader 到 运行 以下两个命令:
$ git checkout master
$ git checkout -b a
我明白这些命令的作用:它们检出 master
分支,然后创建并检出一个名为 a
.
为什么我们需要第一行?它有什么不同吗,还是我可以忽略它?
当你分支时,你从一个特定的提交分支。检查 master 确保您的新分支从 master 分支的头部(最近提交)开始。
创建分支时将以创建分支时的开始提交。从 Master HEAD 创建它是一种常见的模式,但这取决于您要遵循的分支工作流程。拥有 git 工作流程很重要,项目中的所有人都遵循相同的模式,以便所有成员的可维护性和协作。检查 this link 以查看一些最常见的 git 工作流程。
TL;DR
Why do we need the first line at all? [...]
这是确保新分支 a
指向与 master
相同的提交的一种稍微迂回的方法。
更详细的回答
git checkout -b newbranch
的作用
为了修正想法,您可以将 HEAD
指针视为作为您的提交图的地铁地图上的 You-are-here 标记。现在,下面的命令,
git checkout -b newbranch
创建并签出一个名为 newbranch
的新分支,该分支指向 HEAD
(直接或间接)指向 的同一提交。例如,如果您的存储库如下所示,
通过 运行宁 git checkout -b newbranch
,你最终会得到
Michael Hartl 带你去的地方
但是,Michael Hartl(Rails Tutorial 的作者)希望您创建并检出一个指向特定提交的新分支 :您的提示master
分支(即 master
分支指向的提交):
那么,为什么要先查看 master
?
请你运行
git checkout master
Michael Hartl 只是确保您的 HEAD
指向(间接)正确的提交,即 master
:
然后,运行宁
git checkout -b newbranch
肯定会在需要的地方创建新分支:
更直接的方法:两只鸟,一块石头...
不过,必须首先检查 master
似乎有点笨拙。您实际上可以将这两个命令压缩为一个:
git checkout -b newbranch master
无论您在存储库中的哪个位置(即 HEAD
指向的位置),此命令都将创建并检出一个名为 newbranch
的新分支,该分支指向 [=17= 的顶端].
但是,因为 Rails 教程是针对 cater for people who are new to Git 的,并且因为
git checkout -b newbranch master
比
更高级,但可能更不直观git checkout master
git checkout -b newbranch
你真的不能怪 Michael Hartl 推荐了后者。