git同步遠端倉庫的所有分支
阿新 • • 發佈:2021-07-10
git clone
克隆遠端倉庫預設是隻克隆master
分支,當想把遠端倉庫上的所有的分支都克隆下來的話,有以下幾種方法。
使用遠端倉庫github上的LSMLIB倉庫為例.該倉庫在github上一共有三個分支:master(default)
,dev-samrai
,dev
.
在使用git
的過程中都使用ssh
協議進行傳輸,可以進行免密登入。
方法一
-
使用
git clone
克隆倉庫,預設克隆下來的遠端倉庫的整個倉庫,但是隻會在本地建立一個master
分支。git clone [email protected]:ktchu/LSMLIB.git
-
檢視克隆下來程式碼的分支情況,同時可以檢視遠端倉庫的分支情況。
git branch -a # 檢視所有的分支(包括本地分支和遠端分支) * master remotes/origin/HEAD -> origin/master remotes/origin/dev remotes/origin/dev-samrai remotes/origin/master
可以看出遠端倉庫一共有三個分支(
remotes/origin/dev
,remotes/origin/dev-samrai
,remotes/origin/master
),並且遠端倉庫的HEAD
指標目前指向的是remotes/origin/master
分支。 -
新建兩個本地分支與遠端分支相同。
git checkout -b dev origin/dev #本地新建一個分支(dev),並且切換到該分支 與遠端分支(origin/dev)對應 git checkout -b dev-samrai origin/dev-samrai # 同理
當新建完對應的分支,並且切換回來後,發現本地的對應
工作區
的內容已經同步成對應分支的內容了。說明
git clone
克隆了所有的資料,只是需要將對應的分支形成介面,切換成對應的分支資料了。
方法二
使用如下命令,其實與上面的操作是類似的,在本地倉庫下,新建分支與遠端倉庫的分支一一對應,然後進行同步所有分支即可。
git clone [email protected]:ktchu/LSMLIB.git cd LSMLIB git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done git fetch --all git pull --all