Fork ja clone

Fork vs Clone

Nii git fork kui git clone eesmärk on kloonida repositoorium. Siiski on nad mõeldud kasutamiseks erinevates olukordades ning seetõttu annavad ka päris erinevad tulemused.

Peamine erinevus seisneb selles, kui palju õigusi kumbki tegevus endaga kaasa toob.

  • Fork-imine loob repost isikliku koopia, mis tähendab, et saad selles teha muudatusi nii palju kui soovid. Siiski pole automaatselt õigusi teha muudatusi originaalreposse.

  • Clone on põhimõtteliselt repo allalaadimine arvutisse. Kui Sul pole selles muudatuste tegemiseks õigusi, lükatakse need tagasi. Kui on, siis saad pärast kloonimist teha muudatusi ja neid otse originaalreposse push'ida.

Kooliprojektis hakkad enamasti kasutama Git clone’i käsku, sest tegemist on sinu või sinu tiimi projektiga.

Git Fork

Git fork loob remote asukohta koopia kloonitavast repositooriumist, näiteks GitHubi. Seeläbi saad teha kloonitud reposse muudatusi ilma, et see mõjutaks originaalset repot.

  • Fork-itud repo säilitab siiski seose algse repoga, mis lihtsustab soovi korral muudatuste integreerimist originaalsesse projekti.

  • Fork-imine ongi kõige mõistlikum olukordades, kus arendaja tahab teha mingis projektis muudatusi (seda tehakse alati projekti koopias, mitte otse originaalses projektis) ja integreerida need hiljem algsesse projekti.

Muudatusi saab integreerida pull request-ide abil.

Git Clone

Kui repo kloonid, jääb see jagatuks kõigi varem sellesse panustanud arendajate vahele.

  • Kellegi teise projekti kallal töötades ei pruugi muudatuste rakendamisel kloonimine ja push-imine toimida, kuna paika on pandud kaitsemeetmed tagamaks, et repode sisu saavad muuta ainult selle omanikud ja nende poolt määratud isikud.

  • Kui soovid teha muudatusi otse repos, mida on sul õigus muuta, on kloonimine esimene samm enne tegelike muudatuste rakendamist.

  • Kui Sul pole reposse panustamiseks luba, kuid soovid siiski muudatusi teha, on hea mõte kasutada fork-i.

Visuaalne selgitus

../../_images/forkclone.png

Praktiline ülesanne

Siin on Fork/Clone praktiline ülesanne.

Kasutatud materjalid