git clone引數解析

2021-09-21 13:20:38 字數 3271 閱讀 1501

**git官網

概要

git clone [--template = ]

[-l] [-s] [ - no-hardlinks] [-q] [-n] [--bare] [--mirror]

[-o ] [-b ] [-u ] [ - reference ]

[--dissociate] [--separate-git-dir ]

[--depth ] [ - [no-] single-branch] [ - no-tags]

[--rerserse-submodules [= ]] [ - [no-] shallow-submodules]

[--jobs ] [ - ]

描述

將儲存庫轉殖到新建立的目錄中,為轉殖儲存庫中的每個分支建立遠端跟蹤分支(可見使用git branch -r),並建立並檢出從轉殖儲存庫的當前活動分支分叉的初始分支。

在轉殖之後,git fetch沒有引數的普通版將更新所有遠端跟蹤分支,並且git pull無引數將另外將遠端主分支合併到當前主分支中(如果有的話)(當「–single-branch」為時,這是不真實的)給出;見下文)。

此預設配置是通過在refs/remotes/origin初始化remote.origin.url和remote.origin.fetch 配置變數下建立對遠端分支頭的引用來實現的。

options

如果將儲存庫指定為本地路徑(例如/path/to/repo),則這是預設值,而–local本質上是無操作。如果將儲存庫指定為url,則忽略此標誌(並且我們從不使用本地優化)。使用常規git傳輸–no-local時/path/to/repo,指定將覆蓋預設值。

–no-硬鏈結

從本地檔案系統上的儲存庫強制轉殖程序,以複製目錄下的.git/objects 檔案,而不是使用硬鏈結。如果您嘗試備份儲存庫,則可能需要這樣做。

注意:這是乙個可能危險的操作; 你不,除非你了解它使用它。如果使用此選項轉殖儲存庫,然後在源儲存庫中刪除分支(或使用任何其他任何現有提交未引用的git命令),則某些物件可能會變為未引用(或懸空)。這些物件可以通過git commit自動呼叫的普通git操作(例如)來刪除git gc --auto。(請參閱git-gc [1]。)如果刪除了這些物件並被轉殖的儲存庫引用,則轉殖的儲存庫將損壞。

請注意,在轉殖的儲存庫中git repack沒有-l選項的情況下執行-s會將源儲存庫中的物件複製到轉殖儲存庫中的包中,從而節省磁碟空間clone -s。但是,執行是安全的,預設情況下git gc使用該-l選項。

如果要打破-s在其源儲存庫中轉殖的儲存庫的依賴關係,只需執行git repack -a將源儲存庫中的所有物件複製到轉殖儲存庫中的包中。

–reference [-if-able]

如果引用儲存庫位於本地計算機上,則自動設定.git/objects/info/alternates以從引用儲存庫獲取物件。使用現有儲存庫作為備用儲存庫將需要從轉殖的儲存庫中複製更少的物件,從而降低網路和本地儲存成本。使用時–reference-if-able,將跳過不存在的目錄,並顯示警告而不是中止轉殖。

注意:請參閱–shared選項的注釋以及 --dissociate選項。

–verbose

-v詳細地執行。不影響將進度狀態報告給標準錯誤流。

–no結賬

-n轉殖完成後不會檢查head。

–origin

-o 而不是使用遠端名稱origin來跟蹤上游儲存庫,請使用。

–branch

-b 而不是將新建立的head指向轉殖儲存庫的head指向的分支,而是指向分支。在非裸儲存庫中,這是將要檢出的分支。 --branch也可以在結果儲存庫中的提交處獲取標記並分離head。

–upload-pack

-u 給定時,通過ssh訪問要轉殖的儲存庫,這將指定另一端執行的命令的非預設路徑。

–template =

指定將使用模板的目錄; (參見git-init [1]的「template directory」部分。)

–config =

-c =

在新建立的儲存庫中設定配置變數; 這在初始化儲存庫之後,但在獲取遠端歷史記錄或檢出任何檔案之前立即生效。金鑰的格式與git-config [1](例如core.eol=true)的預期格式相同 。如果為同乙個鍵指定了多個值,則每個值都將寫入配置檔案。例如,這樣就可以安全地向源遠端新增額外的fetch refspec。

由於當前實現的限制,一些配置變數在初始提取和檢出之後才會生效。已知不生效的配置變數是: remote..mirror和remote..tagopt。使用相應–mirror和–no-tags選項來代替。

–depth

建立乙個淺層轉殖,其歷史記錄被截斷為指定的提交數。意味著–single-branch除非 --no-single-branch獲取所有分支的提示附近的歷史。如果要淺層轉殖子模組,也要傳遞–shallow-submodules。

–shallow-因為= 《日期》

在指定時間後建立具有歷史記錄的淺層轉殖。

–shallow - 排除= 《修訂》

建立具有歷史記錄的淺層轉殖,不包括可從指定的遠端分支或標記訪問的提交。可以多次指定此選項。

–no標籤

不要轉殖任何標記,並remote..tagopt=–no-tags在配置中設定 ,以確保將來git pull和git fetch操作不會遵循任何標記。後續的顯式標記提取仍然有效(參見git-fetch [1])。

可以與–single-branch轉殖和維護分支一起使用,除了單個轉殖分支之外沒有引用。這對於維護某些儲存庫的預設分支的最小轉殖以用於搜尋索引是有用的。

–recurse-子模組[= 子模組使用其預設設定進行初始化和轉殖。這相當於git submodule update --init --recursive 轉殖完成後立即執行 。如果轉殖庫不具有worktree /結帳忽略此選項(即如果任何的–no-checkout/ -n,–bare或–mirror給出)

–separate-git-dir =

不要將轉殖的儲存庫放在應有的位置,而是將轉殖的儲存庫放在指定的目錄中,然後建立乙個與檔案系統無關的git符號鏈結。結果是git儲存庫可以與工作樹分開。

-j –jobs

同時獲取的子模組數。預設為該submodule.fetchjobs選項。

《庫》要從中轉殖的(可能是遠端的)儲存庫。有關指定儲存庫的更多資訊,請參閱下面的 git urls部分。

《目錄》

要轉殖到的新目錄的名稱。如果沒有明確給出目錄(repofor /path/to/repo.git和foo for host.xz:foo/.git),則使用源儲存庫的「人性化」部分。僅當目錄為空時才允許轉殖到現有目錄中。

git clone 命令引數

git clone 命令引數 usage git clone options v,verbose be more verbose q,quiet be more quiet progress force progress reporting n,no checkout don t create a ...

git clone 幾種可選引數的使用與區別

github clone 的速度,依賴於 庫的大小以及clone速度,基本是幾十kb到200kb之間。要是能達到400kb,恭喜你 要是只有十幾kb,emmmm,還是先去吃飯吧。這裡以mooc 為例說明 在clone某個git倉庫時候需要注意的幾個問題。全轉殖單一轉殖 深度轉殖 很好理解,git c...

git clone 遠端分支

有時git clone下來會出現很多branch,更麻煩的是如果主分支沒 那你就只能看到.git目錄了。如下面的這個 git clone git 發現本地就只有乙個.git目錄,那麼這個時候就需要checkout了。進入你的本地目錄,如這個是mesa,利用 git branch r 檢視branch...