1. 前言
近年來,無論是在軟體開發、學術研究還是個人專案中,「Git」都已成為不可或缺的工具。特別是作為全球廣泛使用的版本控制系統,Git 在團隊協作及開源專案中的程式碼共享與管理方面發揮了重要作用。
本文將以 Ubuntu 這個熱門的 Linux 發行版為例,為初學者詳細介紹如何使用「git clone」指令來複製(clone)Git 儲存庫。
「git clone」是將遠端儲存庫(例如 GitHub 或 GitLab 上公開的專案)完整複製到本地環境時最基本的指令。
Ubuntu 用戶學會活用「git clone」後,不僅可以順利安裝各種開源軟體,也能更有效地建立個人開發環境。
同時,參與團隊協作或社群貢獻也會變得更加便利。
本文將從 Git 的安裝、基本的「git clone」用法,到常見錯誤的解決方式,全面介紹相關操作。
不論你是第一次在 Ubuntu 上接觸 Git,還是希望整理既有知識的使用者,都能在此獲得實用資訊。
2. 前置條件與環境設置
在 Ubuntu 上使用「git clone」前,必須先安裝 Git 本體。此外,初次存取遠端儲存庫時的基本設置與認證準備也很重要。本章將逐步說明環境建置流程。
2.1 Git 的安裝方法
在 Ubuntu 上,可以透過官方儲存庫輕鬆安裝 Git。請開啟終端機並依序執行以下指令:
sudo apt update
sudo apt install git
安裝完成後,請輸入下列指令以確認 Git 是否安裝成功:
git --version
只要能正確顯示版本號,就代表安裝無誤。
2.2 設定使用者名稱與電子郵件
Git 會在記錄檔案變更時保存「誰、什麼時候、做了什麼」。因此,首次使用 Git 時請先設定使用者名稱及電子郵件。
git config --global user.name "你的名字"
git config --global user.email "your.email@example.com"
這個設定只需做一次,日後所有 Git 操作都會套用。如欲針對特定專案另設,可省略 --global
,於專案目錄中執行指令。
2.3 選擇與準備認證方式
存取遠端儲存庫時,Git 主要有「HTTPS」與「SSH」兩種認證方式:
- HTTPS
像瀏覽器一樣透過 URL 連線。GitHub、GitLab 等近年已停止密碼登入,建議使用 Personal Access Token(PAT)。 - SSH
使用公開金鑰與私密金鑰進行認證。安全性高,設定好後無需每次輸入密碼,適合經常使用 Git 的用戶。
2.4 使用 Git Credential Manager(GCM)(視需求而定)
若想更安全、便利地管理密碼或存取權杖(Token),也可以考慮安裝 Git Credential Manager(GCM)。
有了 GCM,可將認證資訊安全儲存,省去每次手動輸入。Ubuntu 可參考官方說明或套件安裝。
至此,Ubuntu 環境下使用「git clone」的前置準備已完成。
下一章將介紹實際執行「git clone」複製儲存庫的步驟。
3. git clone 的基本用法
「git clone」是將遠端儲存庫內容完整複製到本地電腦最基本的指令。當你想使用開源專案或團隊成員建立的儲存庫時,首先就需要執行「git clone」。
3.1 基本指令語法
最簡單的用法如下:
git clone <儲存庫網址>
例如,若要複製 GitHub 上公開的儲存庫:
git clone https://github.com/exampleuser/sample-project.git
執行後,當前目錄下會新建一個「sample-project」資料夾,並下載所有檔案與目錄至其中。
3.2 透過 HTTPS 複製
多數服務會建議用 HTTPS 連線,網址以「https://」開頭。首次操作時,可能會要求輸入認證資訊(如帳號、PAT 等)。
git clone https://github.com/使用者名稱/儲存庫名稱.git
3.3 透過 SSH 複製
若已註冊 SSH 金鑰,可更安全、免密碼地複製。SSH 連線的網址格式如「git@github.com:」開頭。
git clone git@github.com:使用者名稱/儲存庫名稱.git
要使用 SSH 複製,請事先將公開金鑰上傳到 GitHub、GitLab 等。
3.4 複製後的儲存庫結構
執行「git clone」時,除專案檔案外,還會一併複製版本管理資訊所在的「.git」目錄。
- .git 資料夾
儲存所有版本歷史與設定,這個資料夾的存在讓該目錄受 Git 管理。 - 工作目錄
平時編輯的原始碼、說明文件等。
3.5 複製時注意當前目錄
「git clone」會在執行目錄下產生新資料夾。建議先用 cd
指令切換到想存放的位置再執行。
4. 複製特定分支的方法
一個 Git 儲存庫可能有多個分支。一般「git clone」會複製預設分支(如 main 或 master),但有時你只需某特定分支。本章介紹如何指定分支進行複製。
4.1 使用 –branch 參數
「git clone」有 --branch
(或縮寫 -b
)選項,可直接指定分支。
git clone --branch 分支名稱 儲存庫網址
例如,要複製「develop」分支:
git clone --branch develop https://github.com/exampleuser/sample-project.git
這樣本地端會直接切換到「develop」分支。
4.2 搭配 –single-branch 使用
預設情況下,git clone
會下載所有分支。加入「–single-branch」後,只抓取指定分支,可節省空間與頻寬。
git clone --branch 分支名稱 --single-branch 儲存庫網址
這方法適合只需功能分支或大型儲存庫時使用。
4.3 複製後再抓取其他分支
若之後想用其他分支,在儲存庫內執行:
git fetch --all
然後切換分支:
git checkout 分支名稱
即可。
4.4 注意事項
- 私有或有限權限儲存庫,需輸入認證資料。
- 若指定不存在的分支,會發生錯誤。建議事先查閱分支名稱。
善用「git clone」的多元參數,即可有效率地取得想要的分支。
5. 常見錯誤與解決方式
使用「git clone」時,可能因認證、網路或權限等各種因素導致錯誤。以下整理 Ubuntu 用戶常見錯誤及解決方法。
5.1 HTTPS 認證錯誤與 Personal Access Token(PAT)
近年 GitHub、GitLab 為強化資安,已停用舊式密碼認證,必須使用 Personal Access Token(PAT)。
若複製時遇到如下錯誤:
remote: Support for password authentication was removed...
fatal: Authentication failed for 'https://github.com/...'
請前往 GitHub「Settings」>「Developer settings」>「Personal access tokens」申請 PAT,登入時用帳號與 PAT 替代密碼。
5.2 SSH 認證錯誤與金鑰註冊
若透過 SSH 出現「Permission denied (publickey)」錯誤,通常是 SSH 金鑰未正確註冊所致。
【解決方法】
- 在終端機產生 SSH 金鑰(如未有):
ssh-keygen -t ed25519 -C "your.email@example.com"
- 複製公開金鑰內容:
cat ~/.ssh/id_ed25519.pub
- 於 GitHub/GitLab 的設定畫面新增公開金鑰
完成後即可排除 SSH 認證錯誤。
5.3 儲存庫存取權限錯誤
複製私有儲存庫或組織儲存庫時,如遇錯誤訊息:
fatal: repository 'https://github.com/使用者名稱/儲存庫名稱.git/' not found
【解決方法】
- 確認儲存庫網址是否正確
- 檢查帳號是否有權限存取該儲存庫
- 重新輸入認證資料
5.4 網路相關錯誤
遇到「Connection timed out」、「Could not resolve host」等網路錯誤,通常與網路連線或代理設定有關。
【解決方法】
- 確認網路連線正常
- 如有使用 VPN 或代理伺服器,請檢查設定
- 若為 GitHub 端暫時性障礙,請稍候再試
5.5 其他常見錯誤
- 目錄已存在
若資料夾已存在,無法重複複製。請更改目錄名或刪除原有資料夾。 - 磁碟空間不足
請確認有足夠剩餘空間。
遇到錯誤時,逐步排查原因,大多都能解決。
6. git clone 的實用參數
「git clone」有多種實用選項,能幫你更有效率地取得必要資料、處理帶有子模組的專案等。本章介紹常用的重要參數。
6.1 –depth 參數(淺層複製)
若不需全數歷史,只需最新紀錄,可用「–depth」參數指定取得的提交數。
git clone --depth 1 https://github.com/exampleuser/sample-project.git
本例僅複製最新一次提交,適用於大型專案或 CI 環境下重視速度者。
6.2 –single-branch 參數
預設會下載所有分支,用「–single-branch」只複製特定分支。
常與「–branch」搭配使用。
git clone --branch develop --single-branch https://github.com/exampleuser/sample-project.git
有助於只抓取所需分支。
6.3 –recursive 參數(子模組一併取得)
Git 儲存庫可包含子模組。複製帶子模組的專案時,建議加「–recursive」。
git clone --recursive https://github.com/exampleuser/sample-project.git
如此主儲存庫及所有子模組會一併複製。若忘記加,也可事後執行:
git submodule update --init --recursive

6.4 其他常用選項
- –origin 選項
若想將遠端名稱設定為非預設(origin),可加上此參數。 - 指定資料夾名稱
想自訂複製後的資料夾名稱,指令最後加上目標資料夾名即可。
git clone https://github.com/exampleuser/sample-project.git 自訂資料夾名稱
靈活運用多項選項,能大幅提升「git clone」效率與彈性。
7. 使用 GUI 工具進行 git clone
不擅長指令操作或想更直觀管理 Git 時,可利用 GUI(圖形介面)工具。在 Ubuntu 上,有幾款 GUI 工具能輕鬆執行「git clone」。
7.1 常見 GUI 工具介紹
- Gittyup
輕量簡單的 Git 客戶端,可從 Ubuntu 官方套件庫或 Flatpak 安裝。 - Visual Studio Code(VS Code)
極受開發者歡迎,透過擴充功能能直觀操作 Git。 - GitKraken
視覺化操作豐富、功能完整,個人用途免費。
7.2 用 Gittyup 複製儲存庫
- 安裝 Gittyup(例如
sudo apt install gittyup
或經 Flatpak)。 - 啟動應用程式,點選「Clone Repository」等按鈕。
- 輸入儲存庫網址,選擇資料夾,執行即可下載專案。
7.3 用 Visual Studio Code 複製儲存庫
- 啟動 VS Code,點擊左側「來源控制」圖示。
- 點選上方「Clone Repository」按鈕。
- 貼上儲存庫網址並按 Enter,選擇儲存位置即開始複製。
- 複製完成後,能直接於 VS Code 內編輯、提交、推送。
7.4 GUI 工具的優點與注意事項
- 優點
無需輸入指令,圖形化介面友善,易於上手;差異比較、歷史紀錄一目了然。 - 注意事項
各工具功能與介面不盡相同,請依需求選擇。建議初學者可先從 GUI 入門,逐步熟悉指令列操作,提升彈性。
善用 GUI 工具,能讓 Ubuntu 上的「git clone」及各種 Git 操作更直觀高效。結合指令列與圖形介面運用,將大幅提升開發效率。
8. 總結
本文詳細說明了在 Ubuntu 環境下活用「git clone」的基礎到進階方法。
內容涵蓋 Git 安裝流程、HTTPS/SSH 複製、分支管理、實用選項,以及 GUI 工具操作等完整流程。
「git clone」對於導入開源專案、團隊開發或自學都十分重要。熟練掌握後,將能應對各種開發情境、順利推動專案進行。
尤其初學者,建議遇到問題可直接搜尋錯誤訊息或查閱官方文件;漸漸熟悉後,可多加利用進階選項及 GUI 工具,穩步提升技能。
如有未能解決的疑問或遇新問題,歡迎查閱 FAQ、GitHub 官方說明或參考社群討論。
持續結合 Ubuntu 與 Git 的優勢,讓你的開發與學習之路更加順利!
9. FAQ(常見問題與解答)
Q1: 如何在 Ubuntu 安裝 Git?
A1: 請依序於終端機執行下列指令:
sudo apt update
sudo apt install git
安裝後可用 git --version
查詢版本。
Q2: 想只複製特定分支怎麼做?
A2: 使用 --branch
(或 -b
)選項並指定分支名稱,如:
git clone --branch 分支名稱 儲存庫網址
如需僅抓取該分支,請同時加上 --single-branch
。
Q3: 用 HTTPS 複製時出現認證錯誤怎麼辦?
A3: GitHub、GitLab 等已改用 Personal Access Token(PAT)。請至設定頁申請 PAT,於密碼欄位貼上。
Q4: 如何建立 SSH 金鑰並註冊?
A4: 在終端機執行下列指令產生金鑰:
ssh-keygen -t ed25519 -C "your.email@example.com"
然後將 ~/.ssh/id_ed25519.pub
內容註冊至 GitHub/GitLab。
Q5: 如何查詢 clone 下來儲存庫的遠端 URL?
A5: 於儲存庫資料夾內執行:
git remote -v
即可顯示遠端儲存庫網址。
Q6: 若目錄名稱已存在會發生什麼?
A6: git clone
時,如目標目錄已存在會顯示錯誤。請改用其他名稱或刪除舊目錄。
Q7: 如何正確複製帶有子模組的儲存庫?
A7: clone 時加 --recursive
參數:
git clone --recursive 儲存庫網址
如已複製完成,可再執行:
git submodule update --init --recursive
Q8: Ubuntu 上有哪些推薦的 Git GUI 工具?
A8: 推薦 Gittyup、Visual Studio Code(含 Git 擴充)、GitKraken 等,請依需求選擇。
Q9: 複製後想切換其他分支怎麼做?
A9:
git fetch --all
git checkout 分支名稱
即可切換。