[Git] 讓 git clone 只複製特定的分支資料

[Git] 讓 git clone 只複製特定的分支資料

昨天解決了 git clone 出現 remote HEAD refers to nonexistent ref 的錯誤訊息

結果後來發現要使用的應該是另外一個 develop 分支,

不是原本預計的 main…

嗯… 當然可以用 git checkout 再指定 develop 分支,

不過能不能在 git clone 時就指定想要的分支,

而且不要下載其他分支的資料呢?

 

查了一下,stackoverflow: How to clone a specific Git branch?

這篇已經有了解答,就是利用新版 git clone 提供的 –single-branch 選項~

這個選項只會複製指定的分支,例如:

testuser@localhost ~ $ git clone -b develop --single-branch ssh://git@172.1.2.3/opt/share.git 

Cloning into 'share'...
remote: Counting objects: 46656, done.
remote: Compressing objects: 100% (19110/19110), done.
remote: Total 46656 (delta 31597), reused 40359 (delta 26833)
Receiving objects: 100% (46656/46656), 3.44 GiB | 11.16 MiB/s, done.
Resolving deltas: 100% (31597/31597), done.
Checking out files: 100% (43234/43234), done.

 

如上,我就只下載了 develop 這個分支的資料,

目前也是在 develop 這個分支:

testuser@localhost ~/share $ git branch

* develop

 

用 git branch -a 的話,會發現只看的到下載的分支資料,

原本 git clone 看的到其他的分支 (如 remotes/origin/main) 是看不到的囉:

testuser@localhost ~/share $ git branch -a

* develop
  remotes/origin/develop

 

(本頁面已被瀏覽過 35,745 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料