Git
Íslenska ▾ Topics ▾ Latest version ▾ git-clone last updated in 2.29.2

NAFN

git-clone - Einrita hirslu í nýja skrá

SAMANTEKT

git clone [--template=<sniðmótsskrá>]
	  [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
	  [-o <nafn>] [-b <nafn>] [-u <upphalspakki>] [--reference <hirsla>]
	  [--dissociate] [--separate-git-dir <git skrá>]
	  [--depth <dýpt>] [--[no-]single-branch] [--no-tags]
	  [--recurse-submodules[=<slóðatilgreining>]] [--[no-]shallow-submodules]
	  [--[no-]remote-submodules] [--jobs <n>] [--sparse]
	  [--filter=<sía>] [--] <hirsla>
	  [<skrá>]

ÚTSKÝRING

Einritar hirslu í nýtilbúna skrá, býr til greinar undir fjareftirliti fyrir hverja grein í einrituðu hirslunni (hægt að sjá með því að nota git branch --remotes (git grein fjarlægjur)), og býr til og útskráir upphafsgrein sem kvíslast frá viðkomandi virkri grein þeirrar hirslu sem verið er að einrita.

Eftir að einritunin hefur verið framkvæmd mun einfalt git fetch(git sækja) án breyta uppfæra allar greinar sem eru undir fjareftirliti, og git pull (git draga) án breyta mun auk þess steypa saman fjarlægu höfuðgreininni við viðeigandi höfuðgrein, ef einhver finnst (þetta á ekki við þegar "--single-branch" (ein grein) valmöguleikinn er gefinn; sjá fyrir neðan).

Þessi forstillta hegðun færst með því að skapa tilvísanir til hausa fjarlægu greinanna undir refs/remotes/origin (tilvísanir fjarlægjur uppruni) og með því að frumstilla stillingabreyturnar remote.origin.url(fjarlægja uppruni vefslóð) og remote.origin.fetch(fjarlægja uppruni sækja).

VALMÖGULEIKAR

-l
--local

Þegar hirslan sem á að einrita er á staðbundinni vél leiðir þessi stilling hinn venjulega "Git aware" (git meðvitaður) flutningsmáta hjá sér og einritar hirsluna með því að gera afrit af HAUS og öllu sem er undir viðfangs- og tilvísanaskránum. Skjölin sem finnast undir .git/objects/(git viðföng) eru harðhlekkjuð til þess að spara pláss eftir því sem mögulegt er.

Ef hirslan er skilgreind sem sértæk slóð (t.d. /slóð/að/hirslu) þá er þetta forstillt hegðurn, og --local er í eðli sínu slæpi (ofaukið). Ef hirslan er skilgreind sem URL (vefslóð) þá er þessi valmöguleiki hunsaður (og staðbundnar fínstillingar eru aldrei notaðar). Að tiltaka --no-local (ekkert staðbundið) mun valda því að skipunin tekur ekki tillit til forstillinga þegar /slóð/að/hirslu er uppgefin, og nota hinn hefðbundna Git milliflutning í staðinn.

Þvinga einitunarferli hirslu á staðbundnu skráakerfi til að afrita skjöl undir .git/objects(git viðföng) skránni í stað þess að nota harðhlekki. Þetta gæti verið æskilegt ef þú ert að reyna að taka varaafrit af hirslunni þinni.

-s
--shared

Þegar hirslan sem á að einrita er á staðbundinni vél, setjið sjálfkrafa upp .git/objects/info/alternates(git viðföng upplýsingar staðgenglar) í stað þess að nota harðhlekki til að deila viðföngum með upptakahirslunni. Hirslan sem verður til byrjar án nokkurra eigin viðfanga.

NOTE: this is a possibly dangerous operation; do not use it unless you understand what it does. If you clone your repository using this option and then delete branches (or use any other Git command that makes any existing commit unreferenced) in the source repository, some objects may become unreferenced (or dangling). These objects may be removed by normal Git operations (such as git commit) which automatically call git maintenance run --auto. (See git-maintenance[1].) If these objects are removed and were referenced by the cloned repository, then the cloned repository will become corrupt.

Athugaðu að nota skipunina git repack(git endurpakka) án --local (staðbundinn) valmöguleikans í hirslu sem hefur verið einrituð með --shared (deildur) mun afrita viðföng úr upptakahirslunni inn í pakka í einrituðu hirslunni og fjarlæga diskplássið sem sparaðist með clone --shared (einrita deildur). Það er hins vegar öruggt að nota git gc(garbace collection, git ruslasöfnun) sem notar --local(staðbundinn) valmöguleikann sem forstillingu.

Ef þú vilt rifta ákvæðatengslum hirslu við upptakahirsluna sem var einrituð með --shared(deildur) geturðu einfaldlega notað skipunina git repack -a(git endurpakka allt) til að afrita öll viðföng úr upptakahirslunni yfir í nýjan pakka í einrituðu hirslunni.

--reference[-if-able] <hirsla>

Ef hirslan sem vísað er í er í staðbundinni vél, setur þessi skipun sjálfkrafa upp .git/objects/info/alternates (git viðföng upplýsingar staðgenglar) til þess að sækja viðföng úr hirslunni sem vísað er í. Með því að nota hirslu sem er nú þegar til sem staðgengil þarf að afrita færri viðföng úr hirslunni sem verið er að einrita og með því minnkar vinnslukostnaður fyrir netkerfi og staðbundið geymslupláss.

ATHUGASEMD: sjá ATHUGASEMD fyrir --shared(deildur) valmöguleikann, og einnig --dissociate(aðskilja) valmöguleikann.

--dissociate

Þessi valmöguleiki gerir það að verkum að viðföng úr tilvísunarhirslum sem skilgreindar eru með --reference (tilvísun) valmöguleikanum eru fengin lánuð einungis til þess að minnka netkerfisflutning, og eftir að einrit hefur verið gert með því að búa til nauðsynleg staðbundin afrit af þeim viðföngum sem voru fengið lánuð fellur lánið úr gildi. Þennan valmöguleika er einnig hægt að nota þegar verið er að einrita staðbundið frá hirslu sem nú þegar fær viðföng lánuð úr annari hirslu—​nýja hirslan mun fá lánuð viðföng úr sömu hirslu, þá er hægt að fella lánið úr gildi með honum.

-q
--quiet

Verka án frálags. Framvinda er ekki birt í stöðluðu villustreymi.

-v
--verbose

Sýna ferlisupplýsingar. Hefur ekki áhrif á birtingu framvindustöðu í stöðluðu villustreymi.

--progress

Staða framvindu er birt í stöðluðu villustreymi sem forstilling þegar það er tengt við útstöð, nema --quiet (án frálags) sé tilgreindur. Þessi valmöguleiki þvingar birtingu framvindustöðu jafnvel þó að staðlaða villustreyminu sé ekki beint í útstöð.

--server-option=<valmöguleiki>

Senda viðkomandi textastreng til netþjónsins þegar samskiptin eru samkvæmt samskiptareglum af gerð 2. Viðkomandi strengur má ekki innihalda NUL (innihaldslaust) eða LF (línuskipta-) tákn. Meðferð netþjónsins á netþjónsvalmöguleikum, þar með talið óþekktum valmöguleikum, er undir vefþjóninum komin. Þegar margir --server-option=<valmöguleiki> (netþjónsvalmöguleikar) eru gefnir upp eru þeir sendir yfir í þeirri röð sem þeir koma fyrir í á skipanalínunni.

-n
--no-checkout

Endurupptaka HAUS er ekki framkvæmd eftir að einritið er fullgert.

--bare

Þessi valmöguleiki býr til nakta Git hirslu. Það er að segja, í stað þess að búa til <skrá> og setja stjórnunarskrárnar í <skrá>/git. gerir hann <skrá> sjálfa $GIT_DIR`skrána. Þetta felur augljóslega í sér `--no-checkout(engin endurupptaka) vegna þess að það er ekki neinn staður til þar sem hægt er að endurupptaka verktréð. Einnig eru greinahausarnir sem eru fjarlægir afritaðir beint yfir í samsvarandi staðbundna greinahausa, án þess að kortleggja þá í refs/remotes/origin/(tilvísanir fjarlægjur uppruni). Þegar þessi valmöguleiki er notaður eru hvorki búnar til greinarnar sem eru undir fjareftirliti né tilheyrandi stillingabreytur.

--sparse

Frumstillir sparlega endurupptöku skjala svo að verkskráin byrjar einungis með þau skjöl sem eru í rót hirslunnar. Sparleg endurupptaka getur verið stillt til þess að stækka verkskrána eins og þörf er á.

--filter=<síutilgreiningar>

Nota möguleikann til hlutaeinritunar og mælast til þess að netþjónninn sendi undirsafn viðfanga sem hægt er að ná í samkvæmt ákveðinni viðfangasíu. Þegar --filter(sía) er uppgefið er <síutilgreining>`notuð til þess að sía hlutaeinritunina. Til dæmis `--filter=blob:none(sía slumma engin) mun sía út allar slummur (innihald skjals) þangað til Git þarf á þeim að halda. Einnig er hægt að nota --filter=blob:limit=<stærð>(sía slumma takmörk) til þess að sía út allar slummur af lágmarksstærð <stærð>. Fyrir meiri upplýsingar um tilgreiningar á síum, sjá --filter(sía) valmöguleikann í git-rev-list[1].

--mirror

Setja upp spegilmynd af upptakahirslunni. Þetta felur í sér --bare(nakinn). Í samanburði við --bare(nakinn) þá kortleggur --mirror (spegilmynd) ekki bara staðbundnar greinar upprunans yfir í staðbundnar greinar áfangastaðarins, heldur kortleggur allar tilvísanir (þar með taldar greinar sem eru undir fjareftirliti, athugasemdir, o.s.frv.) og setur up stillingar fyrir tilvísanatilgreiningar þannig að allar þessar tilvísanir verði yfirritaðar með git remote update(git fjarlægja uppfærsla) í áfangastaðarhirslunni.

-o <nafn>
--origin <nafn>

Tiltakið <nafn> í staðinn fyrir að nota fjarlægjunafnið origin(uppruni) til þess að fylgjast með hirslunni í bakáttina.

-b <nafn>
--branch <nafn>

Í stað þess að benda hinum nýskapaða HAUS á sömu grein og HAUS hinnar einrituðu hirslu bendir á, gefur `<nafn>`upp nýja grein til að benda á. Í ónaktri hirslu þá er þetta greinin sem verður útskráð. Valmöguleikinn `--branch`getur einnig tekið merki og losar af HAUS í viðeigandi innleggi í þeirri hirslu sem verður til við aðgerðina.

-u <upphalspakki>
--upload-pack <upphalspakki>

Þegar þessi valmöguleiki er uppgefinn, og aðgangur að hirslunni sem á að afrita er í gegn um ssh (secure shell, öryggisskel), þá skilgreinir hann óforstillta slóð fyrir skipunina sem framkvæmd er á hinum endanum.

--template=<sniðmót_skrá>

Skilgreina skrá þar sem sniðmót eru geymd (sjá "SNIÐMÁTSSKRÁ" hluta git-init[1].)

-c <lykill>=<gildi>
--config <lykill>=<gildi>

Skilgreina stillingabreytu í hinni nýsköpuðu hirslu; þetta tekur gildi um leið og hirslan er frumstillt, en áður en að fjarlæg saga er sótt eða nein skjöl útskráð. Lykillin er með sama sniði og git-config[1] býst við (t.d. core.eol=true, kjarni línuending satt). Ef mörg gildi eru gefin fyrir sama lykil er hvert gildi skrifað í stillingaskrána. Þetta gerir það að verkum að til dæmis er öruggt að bæta við auka tilvísanatilgreiningum fyrir "sækja" í upprunafjarlægjuna.

Vegna takmarkana í þeirri útfærslu sem er í notkun byrja sumar stillingabreytur ekki að virka fyrr en eftir fyrsta "sækja" og "endurupptaka". Stillingabreytur sem vitað er að virka ekki eru: remote.<nafn>.mirror(fjarlæg spegilmynd) og remote.<nafn>.tagOpt(fjarlæg merki valfrjáls). Notaðu samsvarandi valmöguleika, --mirror(spegilmynd) og --no-tags(engin merki), í staðinn.

--depth <dýpt>

Búa til grunnt einrit með stytta sögu takmarkaða við uppgefinn fjölda innleggja. Felur í sér --single-branch (ein grein) nema --no-single-branch (ekki ein grein) sé gefið upp til þess að sækja sögu sem nær til enda allra greina. Ef þú vilt einrita undirverkeiningar grunnt, gefðu einnig upp --shallow-submodules (grunnar verkeiningar).

--shallow-since=<dagsetning>

Búa til grunnt einrit með sögu eftir tilgreindan tíma.

--shallow-exclude=<endurskoðun>

Búa til grunnt einrit með sögu, en útiloka innlegg sem hægt er að ná í frá tilgreindri fjargrein eða merki. Hægt er að nota þennan valmöguleika oft.

--[no-]single-branch

Einungis einrita sögu sem nær til enda einnar greinar sem er annað hvort grein tilgreind með --branch(grein) valmöguleikanum eða er aðalgreinin sem HAUS fjarlægjunnar bendir á. Þegar "sækja" er notað aftur á hirsluna sem verður til eru einungis gerðar uppfærslur á greinina sem var undir fjareftirliti fyrir þá grein sem þessi valmöguleiki var notaður á í upprunalegri einritun. Ef HAUS og fjarlægja bentu ekki á neina grein þegar --single-branch(ein grein) einritið ver gert er engin grein undir fjareftirliti búin til.

--no-tags

Ekki einrita nein merki, og tilgreina`remote.<fjarlægja>.tagOpt=--no-tags`(fjarlægja merki valmöguleikar, engin merki) í stillingaskránni, sem gerir það að verkum að í framtíðinni munu git pull (git draga) og`git fetch` (git sækja) ekki elta nein merki. Sérstakar skilgreiningar á merkjum þegar "sækja" er notað eftir á munu samt virka (sjá git-fetch[1]).

Hægt er að nota þennan valmöguleika í samfloti við --single-branch (ein grein) til þess að einrita og viðhalda grein sem hefur engar tilvísanir aðrar en ein einrituð grein. Þetta er nytsamlegt t.d. til þess að viðhalda lágmarkseinritum af forstilltri grein í einhverri hirslu svo hægt sé að leita í henni eftir atriðaskrá.

--recurse-submodules[=<pathspec>]

Frumstilla og einrita undirverkeiningar innan einrits byggt á uppgefinni slóðartilgreiningu eftir að einritið hefur verið búið til. Ef engin slóðatilgreining er gefin upp eru allar undirverkeiningar frumstilltar og einritaðar. Hægt er að tilgreina þennan valmöguleika oftar en einu sinni fyrir slóðatilgreiningar sem innihalda fleiri en eina færslu. Einritið sem verður til fær`submodule.active`(undirverkeining virk) stillt á viðkomandi slóðatilgreiningu, eða "." (þ.e. allar verkeiningar) ef engin slóðatilgreining er gefin upp.

Undirverkeiningar eru frumstilltar og einritaðar með sínum forstillingum. Þetta jafngildir því að nota git submodule update --init --recursive <slóðatilgreining> (git undirverkeining uppfæra frumstilla endurkvæmt) um leið og einritið er tilbúið. Þessi valmöguleiki er hunsaður er einritaða hirslan hefur ekki verktré/endurupptöku (þ.e. ef einver af valmöguleikunum --no-checkout/-n (engin endurupptaka), --bare (nakinn), eða --mirror(spegilmynd) eru gefnir upp)

--[no-]shallow-submodules

Allar undirverkeiningar sem eru einritaðar munu verða grunnar með dýpt 1.

--[no-]remote-submodules

Allar undirverkeiningar sem eru einritðaðar nota stöðu viðeigandi greinar undir fjareftirliti til þess að uppfæra undirverkeininguna, fremur en skráða SHA-1 öryggisundirskrift yfirverksins. Jafngildir því að gefa upp --remote(fjarlægja) með git submodule update (undirverkeining uppfæra).

--separate-git-dir=<git skrá>

Í stað þess að setja einrituðu hirsluna þar sem hún á að vera, setja hana í tilgreinda skrá, og búa síðan til Git hlekk þangað sem er ómeðvitaður um skráasafnið. Árangurinn verður sá að Git hirslan verður aðskilin verktrénu.

-j <n>
--jobs <n>

Fjöldi undirverkeininga sem eru sóttar á sama tíma. Er forstillt samkvæmt submodule.fetchJobs (undirverkeining sæja verk) valmöguleikanum.

<hirsla>

Hirslan (mögulega fjarlæg) til þess að einrita frá. Sjá GIT URLS (vefslóð) hlutann hér fyrir neðan fyrir frekari upplýsingar um það hvernig á að tilgreina hirslur.

<skrá>

Nafn skrárinnar sem á að einrita í. Ef engin skrá er uppgefin er "mennsklegi" hluti upprunahirslunnar notaður (repo fyrir /path/to/repo.git og`foo` fyrir host.xz:foo/.git). Einungis er leyfilegt að einrita í skrá sem þegar er til ef hún er tóm.

GIT VEFSLÓÐIR

Almennt innihalda vefslóðir upplýsingar um samskiptareglur í milliflutningi, vistfang fjarlæga netþjónsins, og slóðina í hirsluna. Það fer eftir því hverjar samskiptareglur eru í milliflutningi hvort allar þessar upplýsingar eru til staðar eða ekki.

Git styður ssh, git, http, og https samskiptareglur (auk þess er hægt að nota ftp og ftps til þess að sækja, en þessar aðferðir eru óhagkvæmar og úreltar; ekki nota þær).

Innbyggði milliflutningurinn (þ.e. git://VEFSLÓÐ) framkvæmir ekki neina sannvottun og ætti að notast með varúð í óöruggum netkerfum.

Með samskiptareglunum er hægt að nota eftirfarandi samsetningareglur:

  • ssh://[notandi@]hýsill.xz[:tengill]/slóð/til/hirsla.git/

  • git://hýsill.xz[:tengill]/slóð/til/hirsla.git/

  • http[s]://hýsill.xz[:tengill]/slóð/til/hirsla.git/

  • ftp[s]://hýsill.xz[:tengill]/slóð/til/hirsla.git/

Hægt er að nota aðrar SCP-líkar samsetningarreglur með SSH samskiptareglunum:

  • [notandi@]hýsill.xz:slóð/til/hirsla.git/

Þessar samsetningarreglur virka einungis ef það eru engin skástrik á undan fyrsta tvípunktinum. Þetta hjálpar til við að aðgreina staðbundna slóð sem inniheldur tvípunkt. Til dæmis er hægt að skilgreina staðbundnu slóðina foo:bar sem algilda slóð, eða ./foo:bar, til þess að forðast það að hún verði túlkuð sem SSH vefslóð.

Auk þess styðja SSH- og Git-samskiptareglurnar framlenginguna ~notandanafn:

  • ssh://[notandi@]hýsill.xz[:tengill]/~[notandi]/slóð/til/hirsla.git/

  • git://hýsill.xz[:tengill]/~[notandi]/slóð/til/hirsla.git/

  • [notandi@]hýsill.xz:/~[notandi]/slóð/til/hirsla.git/

Fyrir staðbundnar hirslur, sem Git hefur einnig innbyggðan stuðning fyrir, er hægt að nota eftirfarandi samsetninagrreglu:

  • /slóð/til/hirsla.git/

  • file:///slóð/til/hirsla.git/

Þessar reglur eru að mestu jafngildar, nema að fyrri reglan felur í sér --local (staðbundinn) valmöguleikann.

git clone (einrita), git fetch (sækja) og git pull (draga), but not git push (stjaka) samþykkja líka viðeigandi knippisskjal. Sjá git-bundle[1].

Þegar Git veit ekki hvernig á að meðhöndla ákveðna flutningsreglu reynir það að nota remote-<flutningur> (fjarlægja) hjálpargagn, ef það er til. Til þess að biðja sértstaklega um fjarlægjuhjálpargagn er hægt að nota eftirfarandi samsetningarreglu:

  • <flutningur>::<fang>

þar sem <fang> getur verið slóð, netþjónn og slóð, eða einhver strengur líkur veffangi sem viðkomandi fjarlægjuhjálpargagn þekkir. Sjá inkgit:gitremote-helpers[7] fyrir frekari upplýsingar.

Ef um er að ræða mikinn fjölda fjarlægra hirsla með svipuð heiti og þú vilt nota annað snið fyrir þær (svo að vefslóðirnar sem þú notar verði endurskrifaðar yfir í vefslóðir sem virka) geturðu búið til stillingareiningu með:

	[url "<raunverulegur veffangsgrunnur>"]
		insteadOf = <annar veffangsgrunnur>

Til dæmis, með þessu:

	[url "git://git.hýsill.xz/"]
		insteadOf = hýsill.xz:/slóð/til/
		insteadOf = vinna:

vefslóð eins og "vinna:hirsla.git" eða "hýsill.xz:/slóð/til/hirsla.git" verða endurskrifaðar í öllum samhengjum semtaka vefslóð til þess að vera "git://git.hýsill.xz/hirsla.git".

Ef þú vilt endurskrifa vefslóðir einungis þegar þú stjakar, þá geturðu búið til stillingareiningu með sniðinu:

	[url "<raunverulegur vefslóðargrunnur>"]
		pushInsteadOf = <annar vefslóðargrunnur>

Til dæmis, með þessu:

	[url "ssh://dæmi.org/"]
		pushInsteadOf = git://dæmi.org/

vefslóð eins og "git://dæmi.org/slóð/til/hirsla.git" verður endurskrifuð sem "ssh://dæmi.org/slóð/til/hirlsa.git" þegar þú stjakar, en upprunalega vefslóðin verður notuð þegar þú dregur.

DÆMI

  • Einrita í bakátt:

    $ git clone git://git.kernel.org/pub/scm/.../linux.git mitt-línux
    $ cd mitt-línux
    $ make
  • Búa til staðbundið einrit sem fær lánað úr núgildandi skrá, án þess að útskrá neitt:

    $ git clone -l -s -n . ../afrit
    $ cd ../afrit
    $ git show-branch
  • Einrita í bakátt á meðan fengið er lánað frá staðbundinni skrá sem þegar er til:

    $ git clone --reference /git/linux.git \
    	git://git.kernel.org/pub/scm/.../linux.git \
    	mitt-línux
    $ cd mitt-línux
  • Búa til nakta hirslu til þess að birta breytingar þínar almenningi:

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

GIT

Hluti af git[1] fylkingunni