2016-05-29 37 views
2

我是Git的新手。在克隆遠程Git存儲庫時,哪個節點簽出到本地工作樹中?

Git遵循非線性DAG模型。所以沿着許多工作路徑可以有許多節點。當我克隆如下的遠程git倉庫:

git clone https://xxx.git 

DAG中的哪個節點會作爲我的本地工作樹簽出?

我覺得應該是某種最新的節點。但是由於DAG模型可以有許多分支,每個分支都指向特定開發路徑的頂端,我在克隆時獲得哪一個分支?服務器上的HEAD符號指針?如果是這樣,誰決定HEAD?

+0

如果沒有'-b',它可能是主人或沒有主人。在後一種情況下,克隆完成後需要運行'git checkout'。 – ElpieKay

+1

請注意,您可以在克隆時指定一個符號名稱,「git clone -b * name * * url *」來覆蓋默認值。這個名稱可以是Git在克隆過程開始時看到的任何名稱,但不是原始哈希。其餘的請參閱VonC的答案。 – torek

回答

4

如果是這樣,誰來決定HEAD?

請參閱 「Change a Git remote HEAD to point to something besides master

默認情況下,HEAD(在遠程回購方)引用master,但託管服務(GitHubGitLabBitBucket)一些git的回購建議更改默認分支。
這有效地改變了象徵性的,裁判是HEAD,如git symbolic-ref

git symbolic-ref HEAD refs/head/anotherBranch 

如果指向一個默認分支(在遠程回購),然後隨後刪除該分支,遠程回購的任何克隆會失敗並抱怨。

+0

Thx。所以,它是作爲我的本地工作樹檢出的頭部。順便說一句,如果默認分支'origin \ master'非常關鍵,爲什麼不讓它不可刪除呢? – smwikipedia

+0

@smwikipedia分支只是該DAG中的暫時標記:請參閱http://stackoverflow.com/a/24404577/6309。而主人只是一個命名約定。 – VonC

相關問題