itt részletesen megvizsgáljuk a git clone
parancsot. git clone
egy git parancssori segédprogram, amely egy meglévő adattár megcélzására, valamint a céltároló klónjának vagy másolatának létrehozására szolgál. Ezen az oldalon a git clone
kiterjesztett konfigurációs opciókat és közös használati eseteket tárgyaljuk., Néhány pontot, majd kiterjed, a következők:
- a Klónozás egy helyi vagy távoli számítógépről
- a Klónozás egy csupasz adattár
- A sekély lehetőség, hogy részben klón tárolókban
- Git URL szintaxisa támogatott protokollok
a beállítása adattár útmutató, beborítottunk egy alapvető használat esetén git clone
. Ez az oldal bonyolultabb klónozási és konfigurációs forgatókönyveket fog felfedezni.,
cél: repo-to-repo collaboration development copy
Ha egy projektet már létrehoztak egy központi adattárban, akkor agit clone
parancs a leggyakoribb módja annak, hogy a felhasználók fejlesztési másolatot kapjanak. Mint agit init
, a klónozás általában egyszeri művelet. Miután egy fejlesztő kapott egy működő példányt, az összes verzióvezérlő műveletet és együttműködést a helyi tárolón keresztül kezelik.,
Repo-to-repo collaboration
fontos megérteni, hogy a GIT ötlete egy “működő másolatról” nagyon különbözik attól a munkamásolattól, amelyet az SVN tárolóból származó kód ellenőrzésével kap. Az SVN-től eltérően a GIT nem tesz különbséget a működő példány és a központi adattár között—ezek mind teljes értékű Git tárolók.
Ez alapvetően különbözik a Git-vel való együttműködéstől, mint az SVN-vel. Míg az SVN a központi adattár és a működő másolat közötti kapcsolattól függ, a Git együttműködési modellje a adattár-adattár interakción alapul., Ahelyett, hogy egy működő példányt ellenőrizne az SVN központi tárolójába, az egyik tárolóból a másikba nyomja vagy húzza a kötelezettségvállalásokat.
természetesen semmi sem akadályozza meg abban, hogy bizonyos Git repos különleges jelentést adjon. Például, ha egy Git repo-t egyszerűen “központi” tárolóként jelölünk meg, lehetőség van egy központi munkafolyamat másolására a Git használatával. A lényeg az, hogy ez az egyezmények révén valósul meg, ahelyett, hogy maga a VCS-be lenne huzalozva.,
használat
git clone
elsősorban arra szolgál, hogy egy meglévő repo-ra mutasson, és egy új könyvtárban, egy másik helyen klónozza vagy másolja a repo-t. Az eredeti adattár a helyi fájlrendszeren vagy a távoli gépen elérhető támogatott protokollokon található. Agit clone
parancs egy meglévő Git tárolót másol. Ez olyan, mint az SVN checkout, kivéve a “working copy” egy teljes értékű Git tároló-saját története van, kezeli saját fájljait, teljesen elszigetelt környezet az eredeti tárolóból.,
kényelemként a klónozás automatikusan létrehoz egy “origin” nevű távoli kapcsolatot, amely az eredeti tárolóra mutat vissza. Ez nagyon egyszerűvé teszi a központi tárolóval való interakciót. Ez az automatikus kapcsolat úgy jön létre, hogy Git refs-t hoz létre a távoli ágfejekhez refs/remotes/origin
és inicializálva remote.origin.url
és remote.origin.fetch
konfigurációs változók.
egy példa, amely a git clone
használatával demonstrál, megtalálható a repository guide beállításában., Az alábbi példa bemutatja, hogyan szerezhető be a központi adattár helyi példánya, amelyet a example.com
szerveren tárolnak, a john:
git clone ssh://[email protected]/path/to/my-project.git
cd my-project
# Start working on the project
az első parancs inicializálja az új Git tárolót a my-project
mappában helyi gép, majd betölti azt a tartalmát a központi adattár. Ezután cd-t készíthet a projektbe, elkezdheti a fájlok szerkesztését, pillanatképek készítését, valamint más tárolókkal való interakciót., Vegye figyelembe azt is, hogy a .git
kiterjesztés ki van hagyva a klónozott tárolóból. Ez tükrözi a helyi másolat nem csupasz állapotát.
klónozás egy adott mappába
git clone <repo> <directory>
klónozza a <repo>
– t a ~<directory>!
nevű mappába a helyi gépen.
egy adott címke klónozása
git clone --branch <tag> <repo>
klónozza a<repo>
– on található tárolót, és csak a<tag>
– re klónozza a ref-t.,
Shallow clone
git clone -depth=1 <repo>
klónozza a <repo>
– on található repository-t, és csak a
commit előzményeit klónozza, amelyeket a depth=1 opció határoz meg. Ebben a példában a <repo>
klón készül, és csak a legutóbbi commit szerepel az új klónozott Repo-ban. A sekély klónozás a leghasznosabb, ha olyan repókkal dolgozik, amelyek kiterjedt elkötelezettséggel rendelkeznek. A kiterjedt commit előzmények méretezési problémákat okozhatnak, mint például a lemezterület-használati korlátozások, valamint a klónozás hosszú várakozási ideje., Egy sekély klón segíthet enyhíteni ezeket a méretezési problémákat.
konfigurációs beállítások
git clone-branch
a -branch
argumentum segítségével megadhat egy adott ág klón helyett az ág a távoli HEAD
mutat, általában a mester ág. Ezen felül ugyanazon effektus helyett egy címkét is átadhat.
git clone -branch new_feature git://remoterepository.git
Ez a fenti példa csak a new_feature
ágat klónozná a távoli Git tárolóból., Ez pusztán egy meggyőzni segédprogram, hogy időt takaríthat meg a letöltés a HEAD
ref a tároló, majd miután további letölteni a ref van szüksége.
git clone-mirror vs.git clone-bare
git clone –bare
hasonló a git init --bare,
amikor a -bare
argumentum átkerül a git clone,
egy példányát a távoli repository egy kihagyott munkakönyvtárral készül., Ez azt jelenti, hogy egy adattár jön létre a történelem, a projekt, amely lehet tolni, húzni, de nem lehet szerkeszteni közvetlenül. Ezenkívül a repo távoli ágai nem lesznek konfigurálva a -bare
tárolóval. Mint a git init --bare,
ez egy tárolt tároló létrehozására szolgál, amelyet a fejlesztők nem szerkesztenek közvetlenül.
git clone — mirror
a --mirror
argumentum implicit módon átadja a --bare
argumentumot is., Ez azt jelenti, hogy a --bare
viselkedését a --mirror
örökli. Így egy csupasz repo nem szerkeszthető működő fájlokat. Ezenkívül a--mirror
klónozza a távoli adattár összes kiterjesztett ref-jét, és fenntartja a távoli ágkövetési konfigurációt. Ezután futtathatja agit remote
frissítést a tükörben, és felülírja az origin repo összes refs-jét. Így pontos “tükrözött” funkciót.,
egyéb konfigurációs beállítások
az egyéb Git klón opciók átfogó listájához keresse fel a hivatalos Git dokumentációt. Ebben a dokumentumban megérintünk néhány más közös lehetőséget.
git clone –template
git clone --template=<template_directory> <repo location>
Clones the repo at <repo location>
és alkalmazza a sablont az újonnan létrehozott helyi ágra. A GIT sablonok alapos refrence-je megtalálható a git init
oldalunkon.,
Git URL-ek
a Git saját URL-szintaxissal rendelkezik, amelyet a távoli tárolóhelyek átadására használnak a Git parancsokhoz. Mivel agit clone
leggyakrabban a távoli tárolókban használatos, itt megvizsgáljuk a Git URL szintaxist.
Git URL protokollok
– SSH
A Secure Shell (SSH) mindenütt hitelesített hálózati protokoll, amelyet általában alapértelmezés szerint konfigurálnak a legtöbb kiszolgálón. Mivel az SSH hitelesített protokoll, a csatlakozás előtt létre kell hoznia a hitelesítő adatokat a tárhelykiszolgálóval., ssh://host.xz/path/to/repo.git/
– GIT
– HTTP
Hyper text transfer protocol. A web protokollja, amelyet leggyakrabban a weboldal HTML adatainak az Interneten történő átvitelére használnak. Git lehet beállítani, hogy kommunikálni HTTP
összefoglaló
ebben a dokumentumban vettünk egy mély pillantást git clone
. A legfontosabb elfoglaltságok a következők:git clone
egy cél repo
2 példányának létrehozására szolgál. A cél repo lehet helyi vagy távoli
3. A GIT néhány hálózati protokollt támogat a távoli repókhoz való csatlakozáshoz
4., Számos különböző konfigurációs lehetőség áll rendelkezésre, amelyek megváltoztatják a klón tartalmát