Home >> Blog >> git clone 設定 git教學
git clone 設定 git教學
在這裡,我們將深入研究該命令。是一個 Git 命令行實用程序,用於定位現有存儲庫並創建目標存儲庫的克隆或副本。在本頁中,我們將討論擴展配置選項和. 我們將在這裡介紹的一些要點是:git clonegit clonegit clone
- 克隆本地或遠程存儲庫
- 克隆一個裸倉庫
- 使用淺選項部分克隆存儲庫
- Git URL 語法和支持的協議
在設置存儲庫指南時,我們介紹了. 此頁面將探索更複雜的克隆和配置方案。git clone
目的:repo-to-repo 協作開發副本
如果已經在中央存儲庫中設置了項目,則該命令是用戶獲取開發副本的最常用方式。像,克隆通常是一次性操作。開發人員獲得工作副本後,所有版本控制操作和協作都通過其本地存儲庫進行管理。git clonegit init
回購到回購合作
重要的是要理解 Git 的“工作副本”概念與通過從 SVN 存儲庫中籤出代碼獲得的工作副本非常不同。與 SVN 不同,Git 不區分工作副本和中央存儲庫——它們都是成熟的Git 存儲庫。
這使得與 Git 的協作與與 SVN 的協作有著根本的不同。SVN 依賴於中央存儲庫和工作副本之間的關係,而 Git 的協作模型基於存儲庫到存儲庫的交互。您無需將工作副本檢入 SVN 的中央存儲庫,而是將提交從一個存儲庫推送或拉取到另一個存儲庫。
當然,沒有什麼能阻止你賦予某些 Git repos 特殊含義。例如,只需將一個 Git 存儲庫指定為“中央”存儲庫,就可以使用 Git複製集中式工作流。關鍵是,這是通過約定完成的,而不是硬連線到 VCS 本身。
用法
git clone主要用於指向現有存儲庫,並在另一個位置的新目錄中創建該存儲庫的克隆或副本。原始存儲庫可以位於本地文件系統或遠程機器可訪問的支持協議上。該命令複製現有的 Git 存儲庫。這有點像 SVN 簽出,除了“工作副本”是一個成熟的 Git 存儲庫——它有自己的歷史記錄,管理自己的文件,並且是與原始存儲庫完全隔離的環境。git clone
為方便起見,克隆會自動創建一個名為“origin”的遠程連接,指向原始存儲庫。這使得與中央存儲庫交互變得非常容易。這種自動連接是通過在遠程分支頭下創建 Git 引用refs/remotes/origin並通過初始化remote.origin.url和remote.origin.fetch配置變量來建立的。
可以在設置存儲庫指南中找到演示使用的示例。下面的示例演示如何獲取存儲在使用 SSH 用戶名 john 可訪問的服務器上的中央存儲庫的本地副本:git cloneexample.com
git clone ssh://john@example.com/path/to/my-project.git
cd my-project
# Start working on the project
第一個命令在my-project本地計算機上的文件夾中初始化一個新的 Git 存儲庫,並用中央存儲庫的內容填充它。然後,您可以 cd 進入項目並開始編輯文件、提交快照以及與其他存儲庫交互。另請注意,.git克隆存儲庫中省略了擴展名。這反映了本地副本的非裸狀態。
克隆到特定文件夾
git clone
將位於的存儲庫克隆到本地計算機上<repo>調用的文件夾中。~<directory>!
克隆特定標籤
git clone --branch
克隆位於的存儲庫,<repo>並且只克隆<tag>
淺克隆
git clone -depth=1 < repo >
克隆位於的存儲庫,<repo>並且僅克隆 由選項 depth=1 指定的提交歷史記錄。在此示例中,創建了一個克隆,<repo>並且只有最近的提交包含在新克隆的 Repo 中。在處理具有大量提交歷史的存儲庫時,淺克隆最有用。廣泛的提交歷史可能會導致擴展問題,例如磁盤空間使用限制和克隆時的長時間等待。淺克隆可以幫助緩解這些擴展問題。
配置選項
git 克隆 - 分支 該-branch參數允許您指定要克隆的特定分支,而不是遠程HEAD指向的分支,通常是主分支。此外,您可以傳遞標籤而不是分支以獲得相同的效果。
git clone -branch new_feature git://remoterepository.git
上面的示例將只克隆new_feature遠程 Git 存儲庫中的分支。這純粹是一個方便的實用程序,可以節省您下載HEAD存儲庫的參考的時間,然後必須額外獲取您需要的參考。
git clone -mirror 與 git clone -bare
git 克隆 --bare
類似於 將參數傳遞給 遠程存儲庫的副本時,將使用省略的工作目錄。這意味著將使用可以推送和拉取但不能直接編輯的項目歷史記錄來設置存儲庫。此外,不會使用存儲庫配置存儲庫的遠程分支。像這樣用於創建開發人員不會直接編輯的託管存儲庫。git init --bare,-baregit clone,-baregit init --bare,
git克隆--鏡像
傳遞參數也會--mirror隱式傳遞--bare參數。這意味著 的行為由--bare繼承--mirror。導致沒有可編輯的工作文件的裸倉庫。此外,--mirror將克隆遠程倉庫的所有擴展引用,並維護遠程分支跟踪配置。然後,您可以git remote在鏡像上運行更新,它將覆蓋原始存儲庫中的所有參考。為您提供準確的“鏡像”功能。
其他配置選項
有關其他 git clone 選項的完整列表,請訪問 官方 Git 文檔。在本文檔中,我們將涉及其他一些常見選項。
git克隆--模板
git clone --template=
克隆 repo<repo location>並將模板應用<template directory>到新創建的本地分支。可以在我們的 git init 頁面上找到對 Git 模板的全面參考。
Git 網址
Git 有自己的 URL 語法,用於將遠程存儲庫位置傳遞給 Git 命令。因為最常用於遠程存儲庫,我們將在這裡檢查 Git URL 語法。git clone
Git URL 協議
-SSH
安全外殼 (SSH) 是一種普遍存在的經過身份驗證的網絡協議,通常在大多數服務器上默認配置。由於 SSH 是經過身份驗證的協議,因此您需要在連接之前與託管服務器建立憑據。ssh://[user@]host.xz[:port]/path/to/repo.git/
- 吉特
git獨有的協議。Git 帶有一個在端口 (9418) 上運行的守護進程。該協議類似於 SSH,但它沒有身份驗證。git://host.xz[:port]/path/to/repo.git/
- HTTP
超文本傳輸協議。網絡協議,最常用於通過 Internet 傳輸網頁 HTML 數據。可以將 Git 配置為通過 HTTP 進行通信http[s]://host.xz[:port]/path/to/repo.git/
概括
在本文檔中,我們深入研究了. 最重要的要點是:1.用於創建目標 repo 的副本git clone
git clone
2.目標repo可以是本地的也可以是遠程的
3. Git 支持一些網絡協議來連接遠程倉庫
4. 有許多不同的配置選項可以改變克隆的內容
有關功能的更深入參考,請參閱 Git 官方文檔。我們還在 設置存儲庫指南中介紹了 git clone 的實際示例。git clone