GIT:了解分支命名约定的问题

时间:2010-12-12 08:03:35

标签: git

我在理解'master''origin master''origin / master','remotes / origin / master'之间的区别时遇到了问题!是否有任何规则来命名GIT分支?我想'origin master'是存储库中的主分支,而origin / master是我对存储库master分支的本地反映,那么什么是remotes / origin / master?!此外,有时我必须使用origin / master来引用存储库主分支(虽然我忘了这个案例,但我觉得我之前已经遇到过这样的事情),为什么会这样?

1 个答案:

答案 0 :(得分:4)

您应该阅读git branching model以正确理解这一点。但是,以下是一个快速而肮脏的解释。

git中的分支是指向DAG提交树中某些节点的指针。当您执行某些操作(例如提交)时,它们将移动。 master是一个这样的指针,默认情况下是初始化新存储库时创建的指针。这是你的“主要分支”(可以这么说)。

由于git是一个分布式版本控制系统,因此本地存储库与远程存储库之间存在差异(如github上的存储库)。这些被称为remote,当您第一次克隆时,将自动创建克隆的远程并命名为origin(即代码来自的位置)。

当您说<remote>/<branch>时,它指的是指针<branch>的位置不在您的本地克隆上,而是在<remote>上。因此,如果在克隆之后,您对本地分支进行了10次提交,master(您的本地分支)将在origin/master之前提交10次。为了清楚地说明我们正在谈论一个遥控器,使用了约定remotes/<remote_name>/<branch_name>

我认为你需要阅读我在使用git之前链接到的书。对于来自svn等版本控制系统的人来说,这有点不直观。 git的分支模型比集中式系统的分支模型简单得多。