Skip to main content

還在一個一個專案 Clone 嗎? 用這招一次 Clone 所有在 GitLab 上的 Repo!!

· 預估閱讀時間: 3 分鐘
Ouch Liu
不務正業的架構師

前言​

每當換電腦或是加入一個新的團隊的時候,把所有和自己相關的 Repo 都 Clone 一份到本機是少不了的工作之一。

如果專案少的話是可以乖乖的一個一個 Repo 慢慢 Clone。

不過,如果和自己有關的專案個數量不是兩隻手數得出來的數量,又或是自己的 Repo 遍佈在多個群組裡面的話,一個一個 Clone 可能就沒那麼有趣了。

這邊就來分享可以一次把所有和自己相關的 Repo Clone 下來的作法。

前置條件​

今天要介紹的工具 -- gitlabber 基本上是透過 Python 操作 GitLab API 來讓我們達到批次複製 GitLab Repo 的一個工具。

所以要能順執行它,就得先裝好 Python。

透過 PyPi 安裝 gitlabber​

裝好 Python 之後呢,就可以透過 pip 指令來安裝 gitlabber 了,安裝的語法如下:

pip install gitlabber

執行結果如果沒有意外的話,應該會如下圖:

透過 pip 指令安裝 gitlabber

在 GitLab 上建立 Access Token​

如同前面描述的, gitlabber 會去存取 GitLab 的 API,所以我們必需建立一組給 API 使用的 Access Token 讓它使用,方法如下:

  1. 登入 GitLab,點選右上角頭像的下拉選單中的 Edit profile。

    點選 Edit profile

  2. 點選左邊選單的 Access Tokens,接著在右邊的 Token name 與 Select scopes 輸入必要的資料,如下圖:

    輸入必要的資料

    小提示
    1. Token name 可以輸入自己喜歡或是好記、好辯識的名字,之後認得出來就好。
    2. read_api 和 read_repository 兩個權限務必勾選,其它可以不勾。
  3. 輸入完畢之後,按下 Create personal access token 按鈕,然後把 Your new personal access token 欄位中的內容複製下來。

    複製 Your new personal access token 欄位的內容

透過 gitlabber Clone 所有 Repo​

準備工作完成之後,就可以動手把專案拉下來啦!!

透過 gitlabber 一次 Clone 所有 Repo​

如果要一次把自己所有的 Repo 拉下來的話,指令如下:

gitlabber -t {你的 access token} -u {GitLab 的網址} -r {本地目標路徑}

例如:

gitlabber -t REo7Nvm5UHmmFR8sqCcz -u https://mygitlab.ouch1978.idv -r d:\my_repo

等它跑完,你所有的 Repo 就都複製到本機囉!!

是不是很方便快速呢!?