[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 次)