
- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支和合並
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基與合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修補程式操作
- Git - 差異操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - Checkout
- Git - 恢復
- Git - 重置
- Git - 恢復操作
- Git - Rm
- Git - 切換操作
- Git - Cherry-pick
- Git - 修正
- 伺服器上的 Git
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 啞 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流程
- Git - 為專案做貢獻
- Git - 維護專案
Git 克隆
git clone 命令用於建立現有 Git 倉庫的副本或“克隆”。當我們克隆一個倉庫時,我們實際上是在將遠端倉庫中的所有程式碼、檔案、歷史記錄和分支下載到本地機器。這使我們能夠在本地處理專案,並且一旦完成更改,我們就可以將更新推送到遠端倉庫。
簡單來說,git clone 是一種將伺服器(如 GitHub、GitLab、Bitbucket 或任何其他基於 Git 的託管服務)上的倉庫複製到我們自己的系統的方法。
基本語法
git clone <repository-url>
例如,要從 GitHub 克隆一個倉庫,我們將執行
git clone https://github.com/user/repository.git
此命令將建立一個與倉庫同名的目錄,並下載所有內容,包括分支和整個提交歷史。
使用 SSH 克隆
許多開發人員更喜歡使用 SSH(安全外殼)而不是 HTTPS 來克隆倉庫。這是因為 SSH 金鑰更安全,並且無需每次與遠端倉庫互動時都輸入密碼。
要使用 SSH 克隆倉庫,我們需要使用 SSH URL
git clone git@github.com:user/repository.git
注意:我們需要設定 SSH 金鑰並將其新增到 Git 託管服務(例如,GitHub、GitLab)。配置完成後,我們可以使用 SSH 克隆倉庫,而無需每次都輸入密碼。
克隆到特定目錄
預設情況下,git clone 會建立一個與倉庫同名的目錄。但是,我們可以透過新增其他引數來指定不同的目錄
git clone <repository-url> <directory-name>
例如,要將倉庫克隆到不同的目錄,我們將執行
git clone https://github.com/user/repository.git my-directory
克隆特定分支
要克隆特定分支,請使用以下命令
git clone -b <branch-name> <repository-url>
例如
git clone -b develop https://github.com/user/repository.git
以上命令將克隆develop分支而不是預設分支。
僅克隆最新更改(淺克隆)
有時,我們可能不需要倉庫的完整歷史記錄,尤其是在專案很大且提交次數很多的情況下。在這種情況下,我們可以使用--depth選項執行“淺克隆”。淺克隆僅下載最新的更改(提交)到指定的深度,這可以節省時間和磁碟空間。
以下命令將僅克隆最近 10 次提交*
git clone --depth 10 https://github.com/user/repository.git
使用子模組克隆
某些 Git 倉庫使用子模組,子模組是在其他倉庫中巢狀的倉庫。如果我們克隆的倉庫包含子模組,我們可以使用--recurse-submodules選項自動初始化和克隆子模組以及主倉庫。
例如
git clone --recurse-submodules https://github.com/user/repository.git
此命令不僅會克隆主倉庫,還會初始化和克隆其所有子模組。
克隆裸倉庫
在 Git 中,“裸”倉庫是沒有工作目錄的倉庫。換句話說,它是一個僅包含版本控制資料的倉庫,不包含實際檔案。裸倉庫通常用於伺服器或倉庫未積極開發但僅用於協作的環境中。
要建立倉庫的裸克隆,請使用--bare選項
git clone --bare https://github.com/user/repository.git
這將建立一個僅包含.git目錄而不包含任何工作檔案的倉庫。裸倉庫通常用作遠端倉庫或團隊協作的中央倉庫。
Git Clone 與 Git Pull
這兩個命令都涉及從遠端倉庫獲取資料,但它們的目的不同
git clone:當我們想要在本地機器上建立倉庫的新副本時,使用此命令。通常在首次開始處理倉庫時,每個專案只使用一次。
git pull:克隆倉庫後,我們使用git pull從遠端倉庫獲取最新更改並將其合併到本地倉庫。它用於使本地副本與遠端版本保持最新。
`git clone` 的常見用例
讓我們探討一些通常使用 git clone 的常見場景。
設定新專案:當我們加入新專案時,我們首先要做的事情可能是將倉庫克隆到本地機器。這使我們能夠探索專案的結構,執行程式碼並開始做出貢獻。
Fork 和 Clone:在 GitHub 等平臺上,我們可以“fork”倉庫,這會在我們的帳戶下建立倉庫的個人副本。Fork 後,我們可以克隆 Fork 的倉庫並獨立處理它。一旦我們進行了更改,我們就可以提交拉取請求以將更改合併回原始倉庫。
參與開源專案:開源開發嚴重依賴 git clone 命令。來自世界各地的開發人員可以克隆公共倉庫,做出貢獻,並將更改推送到主專案。
常見問題的故障排除
雖然git clone通常很簡單,但我們可能會遇到一些問題
拒絕許可權(SSH 問題):如果在使用 SSH 時出現“拒絕許可權”錯誤,我們需要確保 SSH 金鑰已正確設定並新增到 Git 託管服務。
找不到倉庫:如果 URL 不正確或我們無權訪問倉庫,則可能發生此錯誤。
克隆緩慢:如果克隆大型倉庫的速度很慢,請考慮使用--depth選項使用淺克隆來減少要克隆的資料量。