簡體   English   中英

`git clone` 是否復制遠程存儲庫上的每個分支?

[英]Does `git clone` copy every branch on the remote repository?

git clone是否復制遠程存儲庫上的每個分支?

是否可以請求它克隆一些分支而不是其他一些分支,就像git fetch通過其 refspec 參數所做的那樣?

請記住,與 Git 的所有其他部分一樣, git clone並沒有真正關心分支名稱,而是關心commits 只是 Git(和git clone )需要名稱才能找到提交。

git clone命令本身主要包括:

  • 創建一個新目錄(或使用現有但空的目錄)
  • 在該目錄中運行git init
  • 根據需要和適當地在此處配置項目,包括執行git remote add以保存 URL
  • 使用剛剛添加的遙控器運行git fetch
  • 運行git checkout

因此,問題實際上歸結為:您能否控制git clone添加的遙控器的fetch =設置?

答案是肯定的,但僅限於有限的范圍。 限制是:

  • --mirror--mirror設置為+refs/*:refs/*
  • --bare--bare設置為+refs/heads/*:refs/heads/*+refs/tags/*:refs/tags/*
  • --single-branch或任何暗示它為該操作設置 refspec 的命令。

在缺少其中任何一個的情況下,您將獲得一個標准的 refspec。 因此,-- --single-branch允許您選擇一個分支進行克隆(通過更改為單分支--mirror ),而--mirror允許您離開refs/heads/命名空間,但至少在今天,沒有參數可以做一些中間子集。 相反,如果您希望獲得一些特殊的結果,您可以執行自己的mkdir / git init / git remote add / git config / git fetch / git checkout命令序列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM