我是Git的新手。在克隆遠程Git存儲庫時,哪個節點簽出到本地工作樹中?
Git遵循非線性DAG模型。所以沿着許多工作路徑可以有許多節點。當我克隆如下的遠程git倉庫:
git clone https://xxx.git
DAG中的哪個節點會作爲我的本地工作樹簽出?
我覺得應該是某種最新的節點。但是由於DAG模型可以有許多分支,每個分支都指向特定開發路徑的頂端,我在克隆時獲得哪一個分支?服務器上的HEAD符號指針?如果是這樣,誰決定HEAD?
我是Git的新手。在克隆遠程Git存儲庫時,哪個節點簽出到本地工作樹中?
Git遵循非線性DAG模型。所以沿着許多工作路徑可以有許多節點。當我克隆如下的遠程git倉庫:
git clone https://xxx.git
DAG中的哪個節點會作爲我的本地工作樹簽出?
我覺得應該是某種最新的節點。但是由於DAG模型可以有許多分支,每個分支都指向特定開發路徑的頂端,我在克隆時獲得哪一個分支?服務器上的HEAD符號指針?如果是這樣,誰決定HEAD?
如果是這樣,誰來決定HEAD?
請參閱 「Change a Git remote HEAD to point to something besides master」
默認情況下,HEAD(在遠程回購方)引用master
,但託管服務(GitHub,GitLab,BitBucket)一些git的回購建議更改默認分支。
這有效地改變了象徵性的,裁判是HEAD,如git symbolic-ref
:
git symbolic-ref HEAD refs/head/anotherBranch
如果指向一個默認分支(在遠程回購),然後隨後刪除該分支,遠程回購的任何克隆會失敗並抱怨。
Thx。所以,它是作爲我的本地工作樹檢出的頭部。順便說一句,如果默認分支'origin \ master'非常關鍵,爲什麼不讓它不可刪除呢? – smwikipedia
@smwikipedia分支只是該DAG中的暫時標記:請參閱http://stackoverflow.com/a/24404577/6309。而主人只是一個命名約定。 – VonC
如果沒有'-b',它可能是主人或沒有主人。在後一種情況下,克隆完成後需要運行'git checkout'。 – ElpieKay
請注意,您可以在克隆時指定一個符號名稱,「git clone -b * name * * url *」來覆蓋默認值。這個名稱可以是Git在克隆過程開始時看到的任何名稱,但不是原始哈希。其餘的請參閱VonC的答案。 – torek