2013-02-19 31 views
0

我注意到,出于某种原因,我的一些的Git分支与“遥控器/来源”前缀:GitHub的遥控器/产地前缀

BZ9 
* master 
remotes/origin/BZ8 
remotes/origin/BZ9 
remotes/origin/HEAD -> origin/master 
remotes/origin/junit1 
remotes/origin/master 

之间有什么区别,例如,“遥控器/原产地/ BZ9“分公司和BZ9分公司?显然,它们都来自同一个概念分支,但git认为它们是不同的。

回答

0

在您的列表中,“BZ9”和“主”都是本地分支,您可以自由移动更新和删除。当您在其中一个分支上进行提交时,分支会更新以指向您的最新提交。

然而,当您键入git branch -a时显示的遥控器/原点前缀名称就像分支一样,但您可以将其视为“只读”。这些分支您不直接控制,它们在您抓取时自动设置,并且在您再次抓取(或拉出)之前它们不会更改。

这是因为与跟踪您本地开发的本地分支不同,远程/起源分支跟踪远程开发(从“起点”)的服务器。例如,“remotes/origin/junit1”是说:“最后一次从远程原点回购仓库获取git,那里有一个叫做junit1的分支,指向这个提交散列”。

您可以像检查其他任何远程分支一样检出该分支,但是当您提交此分支时,分支指针不会更新,因为它不打算跟踪本地进度,而是用于跟踪远程回购的进度。

您的本地进度由您当地的分支机构跟踪,您可以根据需要自由创建,更新和删除。同样,如果其他人从你的回购中克隆出来,那么当他们从你那里获取时,他们会有两个远程分支:“遥控器/原点/ BZ9”和“遥控器/原点/主控器”。换句话说,您当地的分支机构成为您下游某人的远程/原籍分支机构。

这就是您所有的远程/起始分支都是它们,它们是您上游回购的本地分支的只读副本。