Her vil vi undersøke git clone
– kommandoen i dybden. git clone
er en Git kommando linje verktøy som brukes til å målrette en eksisterende depot og lage en klone, eller kopi av målet depotet. På denne siden vil vi diskutere utvidet konfigurasjon alternativer og felles bruk tilfeller av git clone
., Noen punkter vi vil dekke her er:
- Kloning en lokal eller ekstern depotet
- Kloning en bare depotet
- ved Hjelp av grunne valg for delvis å klone oppbevaringssted
- Git URL-syntaks og støttede protokoller
På for å sette opp et depot guide, vi dekket et grunnleggende eksempel på bruk av git clone
. Denne siden vil utforske mer komplekse kloning og konfigurasjon scenarier.,
Formål: repo-til-repo samarbeid utvikling kopi
Hvis et prosjekt har allerede blitt satt opp i et sentralt register, git clone
– kommandoen er den mest vanlige måte for brukere å få en utvikling kopi. Liker git init
, kloning er vanligvis en engangs bruk. Når en utvikler har fått en arbeidskopi, alle versjonskontroll drift og samarbeid er administrert gjennom sine lokale depotet.,
Repo-til-repo samarbeid
Det er viktig å forstå at Git er ideen om en «working copy» er svært forskjellige fra arbeidskopien du få ved å sjekke ut koden fra en SVN. I motsetning til SVN, Git gjør ingen forskjell mellom arbeidskopien og sentral plassering—de er alle fullverdige Git repositories.
Dette gjør samarbeide med Git fundamentalt annerledes enn med SVN. Mens SVN avhenger av forholdet mellom de sentrale depotet og arbeidskopien, Git samarbeid modellen er basert på depotet-til-depotet samhandling., I stedet for å kontrollere en arbeidskopi i SVN er sentralt lager, du push eller pull begår fra et depot til et annet.
selvfølgelig, det er ingenting som hindrer deg fra å gi visse Git repos spesiell betydning. For eksempel, ved å utpeke ett Git-repo som «sentral» depotet, det er mulig å replikere en sentralisert arbeidsflyt ved hjelp av Git. Poenget er at dette er oppnådd gjennom konvensjoner snarere enn å være kablet inn i VCS seg selv.,
– Bruk
git clone
er primært brukes til å peke til en eksisterende repo og gjøre en klone eller kopier av at repo på i en ny katalog, på et annet sted. Den opprinnelige depotet kan være plassert på det lokale filsystemet eller på ekstern maskin tilgjengelig støttede protokoller. git clone
– kommandoen kopier en eksisterende Git repository. Dette er liksom som SVN checkout, bortsett fra «working copy» er en fullverdig Git repository—det har sin egen historie, forvalter sine egne filer, og er et fullstendig isolert miljø fra den opprinnelige depotet.,
Som en bekvemmelighet, kloning, opprettes det automatisk en ekstern tilkobling kalt «opprinnelse» peker tilbake til den opprinnelige depotet. Dette gjør det svært enkelt å kommunisere med en sentral database. Denne automatiske tilkoblingen er opprettet ved å opprette Git refs til den eksterne gren hoder under refs/remotes/origin
og ved tilbakestilling remote.origin.url
og remote.origin.fetch
variabler.
Et eksempel som viser bruk av git clone
kan bli funnet på å sette opp et depot guide., Eksempelet nedenfor viser hvordan du får tak i en lokal kopi av en sentral database som er lagret på en server som er tilgjengelig på example.com
ved hjelp av SSH brukernavn john:
git clone ssh://[email protected]/path/to/my-project.git
cd my-project
# Start working on the project
Den første kommandoen initierer en ny Git repository i my-project
mappe på din lokale maskin og fyller det med innhold av sentralt register. Deretter kan du cd-en i prosjektet og begynne å redigere filer, begå øyeblikksbilder, og i samspill med andre registre., Merk også at .git
extension er utelatt fra klonede depotet. Dette gjenspeiler ikke-fekk status for den lokale kopien.
Kloning til en bestemt mappe
git clone <repo> <directory>
Klone depotet ligger på <repo>
i den mappen som heter ~<directory>!
på den lokale maskinen.
Kloning en bestemt kode
git clone --branch <tag> <repo>
Klone depotet ligger på <repo>
og bare klone ref for <tag>
.,
Grunne klone
git clone -depth=1 <repo>
Klone depotet ligger på <repo>
og bare klone
historie forplikter angitt av alternativ dybde=1. I dette eksemplet er en klone av <repo>
er laget, og bare den siste forplikte er inkludert i den nye klonet Repo. Grunne kloning er mest nyttig når du arbeider med repos som har en omfattende begå historie. En omfattende begå historie kan føre til tilpasningsproblemer, for eksempel diskplass bruk grenser og lang ventetid når kloning., Et Grunt klone kan hjelpe lindre disse skalering problemer.
Konfigurasjon alternativer
git clone -gren
-branch
argumentet lar deg angi en bestemt gren til å klone i stedet for den grenen den eksterne HEAD
peker til, vanligvis master gren. I tillegg kan du sende en brikke i stedet for grenen for samme effekt.
git clone -branch new_feature git://remoterepository.git
Dette eksemplet ovenfor ville klone bare new_feature
gren fra den eksterne Git repository., Dette er et rent overbevise verktøyet for å spare tid for deg fra å laste ned HEAD
ref av depotet og så måtte i tillegg hente ref du trenger.
git clone -speil vs. git clone -bart
git clone –bart
Lik git init --bare,
ved -bare
argumentet er gått til git clone,
en kopi av eksterne depot vil bli gjort med en utelatt arbeidsmappe., Dette betyr at et depot vil bli satt opp med historien til prosjekt som kan bli dyttet og dro i fra, men kan ikke redigeres direkte. I tillegg, ingen ekstern grener for repo vil være konfigurert med -bare
depotet. Liker git init --bare,
dette er brukt til å opprette en hosted depotet at utviklerne ikke redigere direkte.
git clone –speil
Passerer --mirror
argumentet implisitt passerer --bare
argument som godt., Dette betyr at atferden til --bare
er arvet av --mirror
. Noe som resulterer i en bar repo med ingen redigerbare arbeidsfiler. I tillegg, --mirror
vil klone alle utvidet refs av eksterne depot, og opprettholde eksterne gren sporing konfigurasjon. Deretter kan du kjøre git remote
oppdater på speilet, og det vil overskrive alle refs fra origin-repo. Gir deg nøyaktig «speilet» – funksjon.,
Andre alternativer for konfigurasjon
du finner en omfattende liste over andre git clone valg besøk den offisielle Git dokumentasjon. I dette dokumentet vil vi komme inn på noen andre vanlige valg.
git clone –mal
git clone --template=<template_directory> <repo location>
Kloner repo på <repo location>
og gjelder malen fra <template directory>
til den nyopprettede lokale grenen. En grundig refrence på Git-maler kan bli funnet på vår git init
side.,
Git Nettadresser
Git har sin egen URL-syntaks som er brukt til å gi eksterne depot steder å Git-kommandoer. Fordi git clone
er mest brukt på eksterne lagringsenheter, vil vi undersøke Git URL-syntaksen her.
Git URL protokoller
-SSH
SSH (Secure Shell) er en utbredt godkjent nettverksprotokoll som er ofte konfigurert som standard på de fleste servere. Fordi SSH er en godkjent protokollen, vil du trenger for å etablere legitimasjon med hosting server før du kobler til., ssh://host.xz/path/to/repo.git/
– GIT
– HTTP
Hyper text transfer protocol). Protokollen over internett, mest brukt for å overføre web-side HTML-data over Internett. Git kan være konfigurert til å kommunisere via HTTP
Oppsummering
I dette dokumentet, vi tok et dypt titt på git clone
. De viktigste takeaways er:git clone
brukes til å lage en kopi av en mål-repo
2. Målet repo kan være lokal eller ekstern
3. Git støtter noen nettverksprotokoller å koble til eksterne depot
4., Det finnes mange ulike alternativer for konfigurasjon tilgjengelig som endrer innhold av clone