2015-12-24 120 views
1

我以爲我理解HEAD是'當前'分支,但是當列出分支時,我發現我的當前和遠程HEAD對於我的回購之一是不同的。另一個倉庫甚至沒有列出遠程頭分支。可能有人請解釋下:Git HEAD在列表分支時與主分支分開

[email protected] ~/edcourse $ git branch -va 
* master    9de94d9 Work on week 3 stuff thursday 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 9de94d9 Work on week 3 stuff thursday 

正如你可以看到,產地/ HEAD似乎在主站只是指出。但在隨後的回購也沒有:

[email protected] ~/cpp $ git branch -va 
* master    f30bc16 End of chapter 2 
    remotes/cpp/master f30bc16 End of chapter 2 

唯一之間我是如何處理的存儲庫的點差是第一資源庫進行初始化,由兩個不同的客戶端更新,本次資料庫只被更新由一臺電腦。當我開始使用第二臺計算機進行更新時,將有興趣查看此第二個回購是否獲得指向主設備的遠程HEAD。

回答

3

HEAD指向當前分支的想法非常接近,但請注意,它可能並不總是如此。例如,在「分離頭部」狀態下,它可能指向任意提交。

共享Git存儲庫通常實現爲bare repositories,這意味着它們缺少工作副本。實質上,它們只作爲.git/目錄存在。在沒有工作副本的情況下,「當前分支」的概念缺乏含義,因此遠程通常沒有HEAD

某些遙控器有一個HEAD,例如一個非裸露的遙控器。 GitHub使用HEAD來識別"default branch",這是一個GitHub特定的概念。其他供應商可能會效仿,或將其用於完全不同的事情。