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選項使用淺克隆來減少要克隆的資料量。

廣告