久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)

      本篇文章給大家?guī)?lái)了關(guān)于Git的相關(guān)知識(shí),其中主要介紹了git init和git clone獲取git倉(cāng)庫(kù)的相關(guān)問(wèn)題,包括了git clone 從已有的Git存儲(chǔ)數(shù)據(jù)庫(kù)中克隆倉(cāng)庫(kù)到本地目錄等相關(guān)內(nèi)容,希望對(duì)大家有幫助。

      實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)

      推薦學(xué)習(xí):《Git教程》

      使用git init和git clone獲取git倉(cāng)庫(kù)

      通常獲取git倉(cāng)庫(kù)有兩種方式:

      • 將本地未進(jìn)行版本控制的本地目錄轉(zhuǎn)換為Git倉(cāng)庫(kù);

      • 從其他服務(wù)器上克隆一個(gè)已存在的Git倉(cāng)庫(kù);

      1 git init 在本地目錄上創(chuàng)建Git倉(cāng)庫(kù)

      git init [-q | --quiet] [--bare] [--template=<template_directory>]            [--separate-git-dir <git dir>]            [--shared[=<permissions>]] [directory]

      該命令創(chuàng)建一個(gè)空的Git存儲(chǔ)數(shù)據(jù)庫(kù),基本上會(huì)在.git目錄中創(chuàng)建objects,refs/heads,refs/tags,和模板文件。還會(huì)創(chuàng)建一個(gè)引用主分支的HEAD的初始HEAD文件。
      如果$GIT_DIR環(huán)境變量被指定了,則會(huì)替代./.git目錄作為一個(gè)存儲(chǔ)庫(kù)的基礎(chǔ)。
      如果objects目錄是通過(guò)$GIT_OBJECT_DIRECTORY環(huán)境變量指定的,那么在此目錄下創(chuàng)建sha1目錄,否則就是默認(rèn)的$GIT_DIR/objects目錄。
      在已有的Git存儲(chǔ)庫(kù)中運(yùn)行git init是安全的,他不會(huì)覆蓋已存在的東西。重新運(yùn)行git init的主要原因是獲取新添加的模板(或者如果是--separate-git-dir選項(xiàng),則將Git存儲(chǔ)庫(kù)移到另一個(gè)地方)。

      • [-q, --quite]
        只打印錯(cuò)誤信息和警告信息;
      • [--bare]
        創(chuàng)建一個(gè)裸倉(cāng)庫(kù),不包括.git文件夾,如下:
        實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)
      • [--template=<template_directory>]
        用于在初始化Git倉(cāng)庫(kù)時(shí)將模板文件夾中的文件拷貝到我們初始化時(shí)的.git存儲(chǔ)數(shù)據(jù)庫(kù)中,如果不指定,默認(rèn)拷貝的是/usr/share/git-core/templates路徑下的模板,里面包括如下內(nèi)容:
        $ ls /usr/share/git-core/templates/ branches  description  hooks  info

        如果指定自己默認(rèn)路徑則初始化的Git存儲(chǔ)數(shù)據(jù)庫(kù)如下: 實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)
        其中模板依次可通過(guò)--template=<DIR>設(shè)置,$GIT_TEMPLATE_DIR環(huán)境變量設(shè)置,init.templateDir 配置設(shè)置,并且依次覆蓋下一級(jí)設(shè)置。

      • [--separate-git-dir <git dir>]
        默認(rèn)git init會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè).git文件夾來(lái)儲(chǔ)存Git數(shù)據(jù)庫(kù),此命令可指定一個(gè)路徑來(lái)初始化Git存儲(chǔ)數(shù)據(jù)庫(kù),并在本地創(chuàng)建一個(gè).git文件來(lái)鏈接到指定的目錄中去:
        實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)
        可以看到本地只有一個(gè).git文件,文件中描述了當(dāng)前倉(cāng)庫(kù)的Git存儲(chǔ)數(shù)據(jù)庫(kù)具體位置在哪里,并自動(dòng)鏈接過(guò)去。
      • [--shared[=<permissions>]]
        用于指定創(chuàng)建的Git存儲(chǔ)數(shù)據(jù)庫(kù)的讀寫權(quán)限,包括同組用戶,所有用戶等等權(quán)限設(shè)置,如果沒(méi)有指定默認(rèn)是group權(quán)限。感興趣可以git init --help查看此選項(xiàng)具體用法。
      • [directory]
        如果指定了此選項(xiàng),git init命令則會(huì)在此目錄中運(yùn)行,如果目錄不存在還會(huì)創(chuàng)建該目錄。

      2 git clone 從已有的Git存儲(chǔ)數(shù)據(jù)庫(kù)中克隆倉(cāng)庫(kù)到本地目錄

      git clone [--template=<template_directory>]           [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]           [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]           [--dissociate] [--separate-git-dir <git dir>]           [--depth <depth>] [--[no-]single-branch] [--no-tags]           [--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]           [--[no-]remote-submodules] [--jobs <n>] [--sparse] [--] <repository>           [<directory>]

      克隆一個(gè)倉(cāng)庫(kù)到新被創(chuàng)建的目錄中,為克隆的Git存儲(chǔ)庫(kù)中每個(gè)分支創(chuàng)建遠(yuǎn)程跟蹤分支(通過(guò)git branch --remotes可查看跟蹤分支),并創(chuàng)建和檢出克隆倉(cāng)庫(kù)當(dāng)前活躍的分支到本地初始分支。
      克隆完成后,一個(gè)不帶參數(shù)的git fetch命令可以更新所有遠(yuǎn)程跟蹤分支,并且不帶參數(shù)的git pull命令還會(huì)將遠(yuǎn)程主分支合并到當(dāng)前分支中。
      這個(gè)默認(rèn)配置是通過(guò)在refs/remotes/origin下創(chuàng)建對(duì)遠(yuǎn)程分支頭的引用并且初始化remote.origin.urlremote.origin.fetch配置變量實(shí)現(xiàn)的。

      • [--template=<template_directory>]
        請(qǐng)看git init相關(guān)選項(xiàng)獲取此選項(xiàng)作用。
      • [-l, --local]
        用于從本地Git存儲(chǔ)倉(cāng)庫(kù)克隆Git存儲(chǔ)數(shù)據(jù)庫(kù),此選項(xiàng)會(huì)拷貝本地的refs,HEAD等信息到克隆的Git存儲(chǔ)數(shù)據(jù)庫(kù),并將.git/objects通過(guò)硬鏈接形式鏈接到本地Git存儲(chǔ)庫(kù)以節(jié)約本地空間。
        如果未指定-l選項(xiàng)但[url]是本地路徑則還是會(huì)默認(rèn)進(jìn)行-l選項(xiàng)的行為,但是如果指定的是--no-local選項(xiàng)對(duì)本地倉(cāng)庫(kù)進(jìn)行克隆則會(huì)走默認(rèn)的git clone流程:
        實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)
      • [-s, --shared]
        當(dāng)克隆的倉(cāng)庫(kù)在本地時(shí),默認(rèn)是將本地倉(cāng)庫(kù)中.git/objects的對(duì)象通過(guò)硬鏈接的方式鏈接到本地的克隆倉(cāng)庫(kù),使用此選項(xiàng)不會(huì)再硬鏈接.git/objects目錄,而是在本地的.git/objects/info目錄中創(chuàng)建一個(gè)alternates文件并在其中描述objects原先的位置并進(jìn)行共享使用。
        注意:這個(gè)選項(xiàng)是一個(gè)危險(xiǎn)的選項(xiàng),除非你明白它的作用,否則不要使用它。如果使用這個(gè)選項(xiàng)克隆了本地倉(cāng)庫(kù),然后刪除了源倉(cāng)庫(kù)中的分支,一些對(duì)象可能會(huì)變成未被引用狀態(tài)。而這些對(duì)象是可能被git的命令(git commit內(nèi)部可能自動(dòng)調(diào)用git gc --atuo)刪除的,從而導(dǎo)致倉(cāng)庫(kù)被破壞。
        還需要注意:在用-s選項(xiàng)克隆的存儲(chǔ)庫(kù)中運(yùn)行git repack時(shí),如果沒(méi)有指定--local,-l選項(xiàng),則會(huì)將源存儲(chǔ)庫(kù)中的objects復(fù)制到克隆存儲(chǔ)庫(kù)中的一個(gè)包里面,從而消除了--shared選項(xiàng)帶來(lái)的共享效果和節(jié)省的空間。直接運(yùn)行git gc是安全的,因?yàn)槟J(rèn)使用的--local,-l選項(xiàng)。
        如果想在-s選項(xiàng)指定的倉(cāng)庫(kù)中打破對(duì)共享的依賴,則可以使用git repack -a命令將源存儲(chǔ)庫(kù)中的所有對(duì)象復(fù)制到克隆的存儲(chǔ)庫(kù)的一個(gè)包中。
      • [--no-hardlinks]
        強(qiáng)制在克隆本地倉(cāng)庫(kù)時(shí)使用拷貝的形式復(fù)制.git/objects中的內(nèi)容而不是使用硬鏈接的形式,在進(jìn)行Git存儲(chǔ)庫(kù)備份時(shí)這個(gè)選項(xiàng)就很有用。
      • [-q, --quite]
        安靜的運(yùn)行命令,進(jìn)度不會(huì)報(bào)告到標(biāo)準(zhǔn)錯(cuò)誤流中。
      • [-n, --no-checkout]
        克隆完成后不執(zhí)行檢出HEAD操作:
        實(shí)例詳解git init和git clone獲取git倉(cāng)庫(kù)
      • [--bare]
        創(chuàng)建一個(gè)裸的Git倉(cāng)庫(kù)。也就是說(shuō)不創(chuàng)建<directory>/.git目錄也不會(huì)將管理文件放到<directory>/.git中,而是為自己創(chuàng)建一個(gè)<directory>或者<directory>.git目錄,里面保存的就是實(shí)際的Git數(shù)據(jù)庫(kù)。這個(gè)選項(xiàng)也默認(rèn)是--no-checkout的,不會(huì)檢出任何HEAD,也不會(huì)自動(dòng)跟蹤任何遠(yuǎn)程分支,也不會(huì)創(chuàng)建相關(guān)的配置變量。
      • [--mirror]
        設(shè)置源Git存儲(chǔ)庫(kù)的鏡像。類似于--bare,對(duì)比--bare,--mirror不僅僅映射源的本地分支到目標(biāo)的本地分支,它還映射所有引用(包括遠(yuǎn)程跟蹤分支,筆記等),并設(shè)置refspec配置,以便所有這些引用都被目標(biāo)存儲(chǔ)庫(kù)中的git遠(yuǎn)程更新覆蓋。
        注意:--bare--mirror都是針對(duì)服務(wù)器使用,因?yàn)榉?wù)器只需要保存Git存儲(chǔ)數(shù)據(jù)庫(kù)而不需要實(shí)際操作git命令,所以當(dāng)你在這兩個(gè)選項(xiàng)創(chuàng)建的存儲(chǔ)庫(kù)執(zhí)行Git命令會(huì)得到下面的打?。?
        fatal: this operation must be run in a work tree
      • [-o <name>, --origin <name>]
        未使用此選項(xiàng)時(shí)默認(rèn)使用origin來(lái)跟蹤遠(yuǎn)程倉(cāng)庫(kù),使用此選項(xiàng)后使用<name>來(lái)跟蹤遠(yuǎn)程倉(cāng)庫(kù)。
      • [-b <name>, --branch <name>]
        不要將新創(chuàng)建的HEAD指向克隆倉(cāng)庫(kù)HEAD指向的分支,而是指向<name>分支。
      • [-u <upload-pack>, --upload-pack <upload-pack>]
        在使用ssh訪問(wèn)要克隆的Git存儲(chǔ)庫(kù)時(shí),它為另一端運(yùn)行的命令指定了一個(gè)非默認(rèn)的路徑。這個(gè)選項(xiàng)主要針對(duì)Git服務(wù)器使用,為服務(wù)器使用的git等指定了一個(gè)路徑。一般是/usr/bin/git-upload-pack,當(dāng)服務(wù)器的git運(yùn)行時(shí)會(huì)自動(dòng)找到此路徑的程序。
      • [--reference[-if-able] <repository>]
        如果引用的Git存儲(chǔ)庫(kù)在本地機(jī)器上,自動(dòng)的會(huì)設(shè)置.git/objects/info/alternates文件來(lái)從引用源存儲(chǔ)庫(kù)來(lái)獲取objects,使用已經(jīng)存在的Git存儲(chǔ)庫(kù)作為替代將會(huì)需要更少的objects被從源存儲(chǔ)庫(kù)拷貝過(guò)來(lái),從而降低網(wǎng)絡(luò)和本地存儲(chǔ)成本。當(dāng)使用--reference-if-able時(shí),會(huì)跳過(guò)不存在的目錄,并發(fā)出警告,而不是中止克隆。
      • [--dissociate]
        --reference引用的Git存儲(chǔ)庫(kù)借用objects對(duì)象僅減少網(wǎng)絡(luò)傳輸,并且在通過(guò)對(duì)借用objects進(jìn)行必要的本地復(fù)制來(lái)進(jìn)行克隆后,停止從引用庫(kù)中借用對(duì)象。當(dāng)本地克隆已經(jīng)從另一個(gè)存儲(chǔ)庫(kù)借用objects時(shí),可以使用此選項(xiàng)來(lái)停止新存儲(chǔ)庫(kù)從相同的存儲(chǔ)庫(kù)借用objects。此選項(xiàng)也主要用于Git服務(wù)器。
      • [--separate-git-dir <git dir>]
        請(qǐng)看git init相關(guān)選項(xiàng)獲取此選項(xiàng)作用。
      • [--depth <depth>]
        創(chuàng)建一個(gè)淺克隆,其需要克隆的提交數(shù)量由<depth>指定,并獲取所有分支頂部提交往后<depth>提交數(shù)量克隆到本地。如果也想簡(jiǎn)單克隆子模塊也可以傳遞--shallow-submodules選項(xiàng)。
      • [--[no-]single-branch]
        顧名思義,--single-branch只會(huì)克隆Git存儲(chǔ)庫(kù)中指定的一個(gè)分支,遠(yuǎn)程Git存儲(chǔ)庫(kù)中其他分支不會(huì)在本地被克隆下來(lái),也不會(huì)在本地跟蹤其他遠(yuǎn)程分支,只會(huì)跟蹤單個(gè)遠(yuǎn)程分支。
      • [--no-tags]
        不會(huì)克隆任何標(biāo)簽下來(lái),并且在配置中設(shè)置remote.<remote>.tarOpt=--no-tags,以確保后續(xù)git pullgit fetch也不會(huì)操作到標(biāo)簽,除非顯式的操作標(biāo)簽。
        可以與--single-branch一起使用,以維護(hù)單個(gè)分支,在只維護(hù)某個(gè)缺省分支時(shí)很有用。
      • [--recurse-submodules[=<pathspec>]]
        克隆創(chuàng)建后,根據(jù)提供的<pathspec>初始化并克隆子模塊,如果沒(méi)有指定<pathspec>則所有子模塊都被初始化和克隆。對(duì)于有多個(gè)條目的<parhspec>可以多次給出此選項(xiàng)。
        使用默認(rèn)的此選項(xiàng),相當(dāng)于運(yùn)行git submodule update --init --recursive <pathspec>。
      • [--[no-]shallow-submodules]
        所有被克隆的子模塊都淺克隆深度為1。
      • [--[no-]remote-submodules]
        所有被克隆的子模塊的遠(yuǎn)程跟蹤分支的狀態(tài)來(lái)更新子模塊,而不是記錄在Git數(shù)據(jù)庫(kù)中的SHA1。相當(dāng)于將--remote選項(xiàng)傳遞給git submodule update。
      • [-j <n>, --jobs <n>]
        同時(shí)取出的子模塊數(shù),默認(rèn)是配置submodule.fetchJobs。
      • [--sparse]
        稀疏檢出模式,所謂稀疏檢出就是本地版本庫(kù)檢出時(shí)不檢出全部,只將指定的文件從本地版本庫(kù)檢出到工作區(qū),而其他未指定的文件則不予檢出(即使這些文件存在于工作區(qū),其修改也會(huì)被忽略)。這里不詳細(xì)介紹此功能。
      • [--]
        無(wú)實(shí)際作用,只是為了將選項(xiàng)和操作對(duì)象分開以便易于區(qū)分。
      • <repository>
        要克隆的倉(cāng)庫(kù),可能是遠(yuǎn)程倉(cāng)庫(kù),也可能是本地倉(cāng)庫(kù),可以是https協(xié)議也可以是ssh協(xié)議或者git協(xié)議等等。
      • [<directory>]
        如果指定了此目錄,則會(huì)將Git倉(cāng)庫(kù)克隆到此目錄中。
      • -v, --verbose
        冗長(zhǎng)輸出克隆信息。
      • [-c <key>=<value>, --config <key>=<value]
        在克隆倉(cāng)庫(kù)時(shí)為新創(chuàng)建的Git存儲(chǔ)庫(kù)設(shè)置一個(gè)配置變量,在克隆完成后立即生效

      推薦學(xué)習(xí):《Git教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)