日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Git Clone命令直接使用用戶名密碼Clone

作者:星光落入哥哥眼里 更新時(shí)間: 2022-07-19 編程語(yǔ)言

git-clone 將存儲(chǔ)庫(kù)克隆到新目錄

代碼格式如下:

git clone https://userName:password@鏈接
示例:
git clone -b develop --single-branch https://zhao:12345.com@*.git daima

# 如果用戶名使用的是郵箱,那么 @ 符號(hào)需要轉(zhuǎn)義成 %40,否則會(huì)無(wú)法識(shí)別郵箱,與 Git 倉(cāng)庫(kù)地址前面的 @ 造成沖突:
git clone https://zz@qq.com:123456@*/example.git
# 需要寫(xiě)成 【注】轉(zhuǎn)義僅僅是在命令行或者是代碼中需要。如果使用的是工具的話可以不用轉(zhuǎn)義,工具會(huì)幫我們進(jìn)行轉(zhuǎn)義。
git clone https://zz%40qq.com:123456@*/example.git
原因:
<?php
$userame='zz@qq.com';
echo urlencode($userame);
?>
zz%40qq.com

概述

Git命令使用

[root@master ~]# git clone -h
用法:git clone [選項(xiàng)] [--] <版本庫(kù)> [<路徑>]
    -v, --verbose         更加詳細(xì)
    -q, --quiet           更加安靜
    --progress            強(qiáng)制顯示進(jìn)度報(bào)告
    -n, --no-checkout     不創(chuàng)建一個(gè)檢出
    --bare                創(chuàng)建一個(gè)裸版本庫(kù)
    --mirror              創(chuàng)建一個(gè)鏡像版本庫(kù)(也是裸版本庫(kù))
    -l, --local           從本地版本庫(kù)克隆
    --no-hardlinks        不使用本地硬鏈接,始終復(fù)制
    -s, --shared          設(shè)置為共享版本庫(kù)
    --recursive           在克隆時(shí)初始化子模組
    --recurse-submodules  在克隆時(shí)初始化子模組
    --template <模板目錄>
                          模板目錄將被使用
    --reference <版本庫(kù)>  引用版本庫(kù)
    -o, --origin <名稱(chēng)>   使用<名稱(chēng)>而不是 'origin' 去跟蹤上游
    -b, --branch <分支>   檢出<分支>而不是遠(yuǎn)程HEAD
    -u, --upload-pack <路徑>
                          遠(yuǎn)程 git-upload-pack 路徑
    --depth <深度>        創(chuàng)建一個(gè)指定深度的淺克隆
    --single-branch       只克隆一個(gè)分支、HEAD 或 --branch
    --separate-git-dir <git目錄>
                          git目錄和工作區(qū)分離
    -c, --config <key=value>
                          在新版本庫(kù)中設(shè)置配置信息

描述

將存儲(chǔ)庫(kù)克隆到新創(chuàng)建的目錄中,為克隆存儲(chǔ)庫(kù)中的每個(gè)分支創(chuàng)建遠(yuǎn)程跟蹤分支(使用git branch --remotes可見(jiàn)),并創(chuàng)建、簽出從克隆存儲(chǔ)庫(kù)當(dāng)前活動(dòng)的分支派生的初始分支。

克隆后,不帶參數(shù)的普通git提取將更新所有遠(yuǎn)程跟蹤分支,不帶參數(shù)的git提取將另外將遠(yuǎn)程主分支合并到當(dāng)前主分支(如果有的話)(當(dāng)給定--single-branch時(shí)這是不真實(shí)的);

通過(guò)在 refs/remotes/origin 下創(chuàng)建對(duì)遠(yuǎn)程分支頭的引用,并通過(guò)初始化 remote.origin.url 和 remote.origin.fetch 配置變量來(lái)創(chuàng)建此默認(rèn)配置。

選項(xiàng)

-l

–local

當(dāng)要從中進(jìn)行克隆的存儲(chǔ)庫(kù)位于本地計(jì)算機(jī)上時(shí),此標(biāo)志會(huì)繞過(guò)常規(guī)的“Git感知”傳輸機(jī)制,并通過(guò)為 HEAD 以及對(duì)象和引用目錄內(nèi)的所有內(nèi)容創(chuàng)建副本以克隆存儲(chǔ)庫(kù)。盡可能將 .git/objects/目錄下的文件進(jìn)行硬鏈接以節(jié)省空間。
如果將存儲(chǔ)庫(kù)指定為本地路徑(例如/path/to/repo), --local 參數(shù)實(shí)質(zhì)上是不起作用的。如果將存儲(chǔ)庫(kù)指定為 URL,則忽略此標(biāo)志(不使用本地優(yōu)化)。指定 --no-local 將在給定 /path/to/repo 時(shí)覆蓋默認(rèn)值,而使用常規(guī) Git 傳輸方式。

–no-hardlinks

從本地文件系統(tǒng)上的存儲(chǔ)庫(kù)進(jìn)行克隆時(shí),強(qiáng)制復(fù)制 .git/objects 目錄下的文件,而不使用硬鏈接。如果您要備份存儲(chǔ)庫(kù),則可能需要這樣做。

-s

–shared

當(dāng)要克隆的存儲(chǔ)庫(kù)位于本地計(jì)算機(jī)上時(shí),不使用硬鏈接,而是自動(dòng)設(shè)置 .git/objects/info/alternates 與源存儲(chǔ)庫(kù)共享對(duì)象。生成的存儲(chǔ)庫(kù)開(kāi)始時(shí)沒(méi)有其自己的任何對(duì)象。

注意:這可能是危險(xiǎn)的操作;不要使用除非您了解它的功能。 如果您克隆您的存儲(chǔ)庫(kù)時(shí)使用此選項(xiàng), 然后在源存儲(chǔ)庫(kù)中刪除分支 (或使用任何其他使現(xiàn)有提交解除引用的 Git 命令), 某些對(duì)象可能會(huì)變得未引用(或懸空)。 這些對(duì)象可以通過(guò)常規(guī)的 Git 操作(例如 git commit)刪除。 它會(huì)自動(dòng)調(diào)用 git gc --auto。 如果這些對(duì)象已刪除并被克隆的存儲(chǔ)庫(kù)引用, 那么克隆的存儲(chǔ)庫(kù)將損壞。

請(qǐng)注意,在使用 --shared 選項(xiàng)克隆的存儲(chǔ)庫(kù)中運(yùn)行不帶 --local 選項(xiàng)的 git repack 命令會(huì)將源存儲(chǔ)庫(kù)中的對(duì)象復(fù)制到克隆存儲(chǔ)庫(kù)中的包中,從而消除使用 clone --shared 節(jié)省的磁盤(pán)空間。不過(guò)運(yùn)行 git-gc 是安全的,它默認(rèn)使用 --local 選項(xiàng)。

如果要斷開(kāi)用 --shared 克隆的存儲(chǔ)庫(kù)對(duì)其源存儲(chǔ)庫(kù)的依賴(lài)關(guān)系,只需運(yùn)行 git repack -a 即可將源存儲(chǔ)庫(kù)中的所有對(duì)象復(fù)制到克隆存儲(chǔ)庫(kù)中的一個(gè)包中。

–reference [-if-able] <存儲(chǔ)庫(kù)>

如果參考存儲(chǔ)庫(kù)位于本地計(jì)算機(jī)上,則自動(dòng)設(shè)置 .git/objects/info/alternates 以從參考存儲(chǔ)庫(kù)獲取對(duì)象。使用現(xiàn)有的存儲(chǔ)庫(kù)作為備用存儲(chǔ)庫(kù),則將需要從要克隆的存儲(chǔ)庫(kù)中復(fù)制較少的對(duì)象,從而降低了網(wǎng)絡(luò)和本地存儲(chǔ)成本。當(dāng)使用 --reference-if-able 時(shí),不存在的目錄會(huì)被警告跳過(guò),而不是中止克隆。
注意:請(qǐng)參閱--shared選項(xiàng)的注釋?zhuān)约?--dissociate選項(xiàng)。

–dissociate

從用 --reference 選項(xiàng)指定的參考存儲(chǔ)庫(kù)中借用對(duì)象僅是為了減少網(wǎng)絡(luò)傳輸,并在克隆后通過(guò)制作借用對(duì)象的必要本地副本來(lái)停止從對(duì)象借用。當(dāng)從已經(jīng)從另一個(gè)存儲(chǔ)庫(kù)借用對(duì)象的存儲(chǔ)庫(kù)進(jìn)行本地克隆時(shí),也可以使用此選項(xiàng):新存儲(chǔ)庫(kù)將從同一個(gè)存儲(chǔ)庫(kù)借用對(duì)象,并且該選項(xiàng)可用于停止借用。

-q

–quiet
悄悄操作。進(jìn)度不會(huì)報(bào)告給標(biāo)準(zhǔn)錯(cuò)誤流。

-v

–verbose

冗余運(yùn)行。不影響向標(biāo)準(zhǔn)錯(cuò)誤流報(bào)告進(jìn)度狀態(tài)。

–progress

默認(rèn)情況下附加到終端時(shí),會(huì)將進(jìn)度狀態(tài)報(bào)告給標(biāo)準(zhǔn)錯(cuò)誤流,除非指定了 --quiet 選項(xiàng)。即使標(biāo)準(zhǔn)錯(cuò)誤流未定向到終端,該標(biāo)志也會(huì)強(qiáng)制顯示進(jìn)度狀態(tài)。

–server-option=<option>

使用協(xié)議版本2進(jìn)行通信時(shí),將給定的字符串傳輸?shù)椒?wù)器。給定的字符串不得包含NUL或LF字符。服務(wù)器對(duì)服務(wù)器選項(xiàng)(包括未知選項(xiàng))的處理是取決于服務(wù)器。當(dāng)給出多個(gè)--server-option = <option>時(shí),它們都按照命令行中列出的順序發(fā)送到另一端。

-n

–no-checkout

克隆完成后,不執(zhí)行磁頭簽出。

–bare

創(chuàng)建一個(gè)空的Git存儲(chǔ)庫(kù)。也就是說(shuō)不是創(chuàng)建<目錄>并將管理文件放在<目錄>/中。git使<目錄>本身成為$GIT_DIR。這顯然意味著不簽出,因?yàn)闆](méi)有地方可以簽出工作樹(shù)。此外遠(yuǎn)程的分支頭被直接復(fù)制到相應(yīng)的本地分支頭,而不將它們映射到refs/remotes/origin/使用此選項(xiàng)時(shí),既不會(huì)創(chuàng)建遠(yuǎn)程跟蹤分支,也不會(huì)創(chuàng)建相關(guān)的配置變量。

–sparse

初始化稀疏檢出文件,以便工作目錄僅從存儲(chǔ)庫(kù)根目錄中的文件開(kāi)始??梢孕薷南∈韬灣鑫募愿鶕?jù)需要擴(kuò)展工作目錄。

–filter=<過(guò)濾器定義>

使用部分克隆功能,并請(qǐng)求服務(wù)器根據(jù)給定的對(duì)象過(guò)濾器發(fā)送可訪問(wèn)對(duì)象的子集。使用 --filter時(shí),提供的< filter-spec >用于部分克隆過(guò)濾器。例如, --filter=blob:none將過(guò)濾掉所有blob(文件內(nèi)容)直到Git需要為止。此外 --filter=blob:limit=將過(guò)濾掉所有大小至少為< size >的blob。

–mirror

設(shè)置源存儲(chǔ)庫(kù)的鏡像。這意味著裸露。與 --bare 相比, --mirror不僅將源的本地分支映射到目標(biāo)的本地分支,還映射所有的引用(包括遠(yuǎn)程跟蹤分支、注釋)并設(shè)置一個(gè)refspec配置,這樣所有這些ref都會(huì)被目標(biāo)存儲(chǔ)庫(kù)中的git遠(yuǎn)程更新覆蓋。

-o <名稱(chēng)>

–origin <名稱(chēng)>

不使用遠(yuǎn)程名稱(chēng) origin 來(lái)跟蹤上游存儲(chǔ)庫(kù),而使用<名稱(chēng)>。

-b <名稱(chēng)>

–branch <名稱(chēng)>

不將新創(chuàng)建的 HEAD 指向克隆存儲(chǔ)庫(kù)的 HEAD 所指向的分支,而是指向<名稱(chēng)>分支。在非裸倉(cāng)庫(kù)中,這是將被檢出的分支。 --branch 也可以使用標(biāo)簽并在生成的存儲(chǔ)庫(kù)中的提交時(shí)分離 HEAD。

-u <上傳包>

–upload-pack

如果指定了要克隆的存儲(chǔ)庫(kù),且可以通過(guò) ssh 訪問(wèn)該存儲(chǔ)庫(kù),這將為另一端運(yùn)行的命令指定非默認(rèn)路徑。

–template = <模板目錄>

指定將使用模板的目錄;

-c <鍵> = <值>

–config <鍵> = <值>

在新創(chuàng)建的存儲(chǔ)庫(kù)中設(shè)置一個(gè)配置變量;這將在存儲(chǔ)庫(kù)初始化后立即生效,但在獲取遠(yuǎn)程歷史記錄或簽出任何文件之前生效。該密鑰的格式與git-config所預(yù)期的格式相同(例如core.eol=true)。如果同一個(gè)鍵有多個(gè)值,每個(gè)值都將被寫(xiě)入配置文件。例如這使得向源遙控器添加額外的fetch refspecs變得安全。
由于當(dāng)前實(shí)現(xiàn)方式的限制,某些配置變量要等到初始獲取和簽出后才能生效。已知不會(huì)生效的配置變量有:remote.<s名稱(chēng)> .mirror remote.<名稱(chēng)> .tagOpt。如要修改應(yīng)改用相應(yīng)的 --mirror 和 --no-tags 選項(xiàng)。

–depth <深度>

創(chuàng)建一個(gè)歷史記錄被截?cái)酁橹付ㄌ峤淮螖?shù)的“淺”克隆。暗含 --single-branch 選項(xiàng),除非給出 --no-single-branch 來(lái)獲取所有分支頂端附近的歷史記錄。如果要淺層克隆子模塊,還可以使用 --shallow-submodules 選項(xiàng)。

–shallow-since=< date >

創(chuàng)建淺克隆,只包含指定的時(shí)間之后的歷史記錄。

–shallow-exclude=

創(chuàng)建一個(gè)有歷史的淺克隆,不包含可以被指定遠(yuǎn)程分支或標(biāo)簽訪問(wèn)的提交。本選項(xiàng)可以使用多次。

–[no-]single-branch

僅克隆直到單一分支末尾的歷史,該分支被 --branch 選項(xiàng)或主分支遠(yuǎn)程 HEAD 指定。被創(chuàng)建倉(cāng)庫(kù)之后的抓取將只更新在克隆時(shí)被指定的遠(yuǎn)程跟蹤分支。如果在 --single-branch 克隆時(shí),遠(yuǎn)程 HEAD 未指向任何分支,則不會(huì)創(chuàng)建遠(yuǎn)程跟蹤分支。

–no-tags

不克隆任何標(biāo)簽,并在配置中設(shè)置 remote.<remote>.tagOpt=--no-tags ,確保將來(lái)的git pullgit fetch操作不會(huì)跟隨任何標(biāo)簽。隨后的顯式標(biāo)簽抓取仍將起作用。
可以與 --single-branch 結(jié)合使用,以克隆和維護(hù)除單個(gè)克隆分支外沒(méi)有其他引用的分支。這在例如維護(hù)某些倉(cāng)庫(kù)的默認(rèn)分支的最小克隆以進(jìn)行搜索索引時(shí)有用。

–recurse-submodules [=< pathspec >]

創(chuàng)建克隆后,根據(jù)提供的路徑規(guī)范初始化并克隆其中的子模塊。如果未提供路徑規(guī)范,則將初始化并克隆所有子模塊。對(duì)于由多個(gè)條目組成的路徑規(guī)范,可以多次賦予此選項(xiàng)。生成的克隆將把 submodule.active 設(shè)為提供的路徑規(guī)范。如果未提供路徑規(guī)范,生成的克隆將把 submodule.active 設(shè)為 “.” (表示所有子模塊)。

子模塊使用其默認(rèn)設(shè)置進(jìn)行初始化和克隆。這等效于克隆完成后立即運(yùn)行 git submodule update --init --recursive <路徑規(guī)范>。如果克隆的倉(cāng)庫(kù)沒(méi)有工作區(qū)/檢出(即給出了 --no-checkout/-n,–bare 或 --mirror中的任何一個(gè)選項(xiàng))則忽略此選項(xiàng)。

–[no-]shallow-submodules

所有克隆的子模塊都將是淺克隆,深度為1。

–[no-]remote-submodules

克隆的所有子模塊將使用子模塊的遠(yuǎn)程跟蹤分支的狀態(tài)來(lái)更新子模塊,而不是超級(jí)項(xiàng)目的已記錄SHA-1。等同于將--remote 傳遞給 git submodule update。

–separate-git-dir=<git目錄>

不將克隆的存儲(chǔ)庫(kù)放置在原處,而是將克隆的存儲(chǔ)庫(kù)放置在指定的目錄中,然后在此處建立與文件系統(tǒng)無(wú)關(guān)的Git符號(hào)鏈接。這可以將Git倉(cāng)庫(kù)與工作區(qū)分離。

-j < n >

–jobs < n >

同時(shí)抓取的子模塊數(shù)。默認(rèn)為 submodule.fetchJobs 選項(xiàng)。

<倉(cāng)庫(kù)>

要克隆的(可能是遠(yuǎn)程的)倉(cāng)庫(kù)。

<目錄>

要克隆到的新目錄的名稱(chēng)。如果未明確指定目錄,則使用源倉(cāng)庫(kù)中的“人性化”部分(對(duì)于 /path/to/repo.git 而言為 repo;對(duì)于 host.xz:foo/.git 而言為 foo)。僅當(dāng)目錄為空時(shí)才允許克隆到現(xiàn)有目錄。

GIT URLS

通常 URL 包含有關(guān)傳輸協(xié)議,遠(yuǎn)程服務(wù)器的地址以及存儲(chǔ)庫(kù)路徑的信息。對(duì)于某些傳輸協(xié)議,一些信息可能會(huì)缺失。
Git 支持 ssh,git,http 和 https 協(xié)議(此外可以使用 ftp 和 ftps 進(jìn)行抓取,但這效率低下且不建議使用;請(qǐng)勿使用)。
本地傳輸(即 git://URL)不進(jìn)行身份驗(yàn)證,在不安全的網(wǎng)絡(luò)上應(yīng)謹(jǐn)慎使用。

格式

ssh://[user@]host.xz[:port]/path/to/repo.git/
git://host.xz[:port]/path/to/repo.git/
http[s]://host.xz[:port]/path/to/repo.git/
ftp[s]://host.xz[:port]/path/to/repo.git/

ssh 協(xié)議也可以使用類(lèi)似 scp 的語(yǔ)法:

[user@]host.xz:path/to/repo.git/

僅當(dāng)?shù)谝粋€(gè)冒號(hào)之前沒(méi)有斜杠時(shí)才能識(shí)別此語(yǔ)法。這有助于區(qū)分包含冒號(hào)的本地路徑。例如可以將本地路徑 foo:bar 指定為絕對(duì)路徑,或者將 ./foo:bar 指定為絕對(duì)路徑,以避免被誤識(shí)別為 ssh url。
ssh 和 git 協(xié)議還支持 ~username 擴(kuò)展:

ssh://[user@]host.xz[:port]/~[user]/path/to/repo.git/
git://host.xz[:port]/~[user]/path/to/repo.git/
[user@]host.xz:/~[user]/path/to/repo.git/

對(duì)于本地存儲(chǔ)庫(kù)(Git 本身也支持),可以使用以下語(yǔ)法:

/path/to/repo.git/
file:///path/to/repo.git/

這兩種語(yǔ)法幾乎是等效的,除了前者暗含 --local 選項(xiàng)。git clone,git fetch 和 git pull,但不包括 git push,也將接受合適的捆綁文件。
當(dāng) Git 不知道如何處理某種傳輸協(xié)議時(shí),它會(huì)嘗試使用 remote- <傳輸方式> 遠(yuǎn)程幫助程序(如果存在)。要顯式請(qǐng)求遠(yuǎn)程幫助程序,可以使用以下語(yǔ)法:

<傳輸方式>::<地址>

其中 <地址> 可以是路徑,服務(wù)器與路徑,也可以是可被調(diào)用的特定遠(yuǎn)程幫助程序識(shí)別的類(lèi)似于 URL 的任意字符串。
如果存在大量類(lèi)似名稱(chēng)的遠(yuǎn)程存儲(chǔ)庫(kù),并且您要為其使用不同的格式(這樣您使用的 URL 將被重寫(xiě)為有效的 URL),則可以創(chuàng)建以下形式的配置:

[url "<actual url base>"]
		insteadOf = <other url base>

例如有如下:

[url "git://git.host.xz/"]
		insteadOf = host.xz:/path/to/
		insteadOf = work:

URL 諸如 “work:repo.git” 或 “host.xz:/path/to/repo.git” 會(huì)在任何 URL 類(lèi)似于 git://git.host.xz/repo 的上下文中重寫(xiě)。
如果要重寫(xiě)僅用于推送的 URL,可以創(chuàng)建表單的配置部分:

[url "<actual url base>"]
		pushInsteadOf = <other url base>

例如,有如下:

[url "ssh://example.org/"]
	pushInsteadOf = git://example.org/

類(lèi)似于 git://example.org/path/to/repo.git 的 URL 會(huì)被重寫(xiě)為 ssh://example.org/path/to/repo.git用于推送。但拉取代碼時(shí)仍然使用原始的 URL。

實(shí)例

從上游克?。?/p>

git clone git://git.kernel.org/pub/scm/.../linux.git my-linux
cd my-linux
make

制作一個(gè)從當(dāng)前目錄借用的本地克隆,而無(wú)需進(jìn)行檢出:

git clone -l -s -n . ../copy
cd ../copy
git show-branch

從上游克隆時(shí)借用本地目錄:

git clone --reference /git/linux.git \
	git://git.kernel.org/pub/scm/.../linux.git \
	my-linux
cd my-linux

創(chuàng)建一個(gè)裸倉(cāng)庫(kù),以將您的更改發(fā)布給公眾:

git clone --bare -l /home/proj/.git /pub/scm/proj.git

Never deny yourself and believe that you are the best!

原文鏈接:https://blog.csdn.net/qq_50573146/article/details/125850625

欄目分類(lèi)
最近更新