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 Sinu enda koopia, mis tähendab, et saad selles teha muudatusi nii palju kui hing ihaldab. Siiski pole Sul automaatselt õigusi teha muudatusi originaalreposse.

Clone on põhimõtteliselt repo allalaadimine Sinu 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 Sulle 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 Sa repo kloonid, jääb see jagatuks kõigi varem sellesse panustanud arendajate vahel.

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

Praktilised ülesanded forkimise ja kloonimise kohta

Eesmärk: Luua isiklik koopia sellest repositooriumist, mille kallal saad töötada.

Projekt, millega ülesandeid lahendada: https://gitlab.cs.ttu.ee/iti0105-2024/git-workshop

Juhised projekti kloonimiseks/forkimiseks leiad siit.

1. Juhised IDE jaoks:

Forki repositoorium GitLabis:

  • Vajuta paremas ülanurgas asuvale Fork nupule, et luua oma GitLabi kontole koopia sellest repositooriumist.

  • Tuleb ette Fork project vaade, Project URL juurde lisa namespace'iks oma Gitlab'i konto.

  • Veendu, et Branches to include valikus on valitud All branches.

  • Vajuta Fork project nuppu.

  • Oota, kuni forkimine on lõpule viidud, ja mine seejärel oma fork'itud repositooriumi lehele.

Klooni repositoorium PyCharmi:

  • Oma fork'itud repositooriumi lehel klõpsa Code nupule, et kopeerida kloonimislink (HTTPS URL).

  • Ava PyCharm.

  • Vali ülemisest menüüst Get from VCS (või VCS > Get from Version Control).

  • Avanevas aknas kleebi kloonimislink URL väljale.

  • Vali kohalik kataloog, kuhu soovid repositooriumi kloonida.

  • Vajuta Clone.

Kloonitud repositooriumi avamine ja seadistamine:

  • PyCharm avab kloonitud repositooriumi automaatselt.

  • Sa peaksid nüüd nägema oma projekti failistruktuuri PyCharmi Project vaates.

  • Nüüd oled valmis töötoa ülesandeid täitma, kasutades oma kloonitud repositooriumi.

2. Juhised terminali jaoks:

Forki repositoorium GitLabis:

  • Vajuta paremas ülanurgas asuvale Fork nupule, et luua oma GitLabi kontole koopia sellest repositooriumist.

  • Tuleb ette Fork project vaade, Project URL juurde lisa namespace'iks oma Gitlab'i konto.

  • Veendu, et Branches to include valikus on valitud All branches.

  • Vajuta Fork project nuppu.

  • Oota, kuni forkimine on lõpule viidud, ja mine seejärel oma fork'itud repositooriumi lehele.

Klooni repositoorium:

  • Oma fork'itud repositooriumi lehel klõpsa Code nupule, et kopeerida kloonimislink (HTTPS URL).

  • Ava terminal (Command Prompt, PowerShell, Terminal, sõltuvalt operatsioonisüsteemist).

  • Navigeeri kausta, kuhu soovid repositooriumi kloonida, kasutades käsku cd (change directory). Näiteks:

cd /teekond/sinu/kaustani
  • Klooni repositoorium käsklusega:

git clone https://gitlab.com/sinu_kasutajanimi/git-workshop.git

Kloonitud repositooriumi avamine ja seadistamine:

  • Navigeeri kloonitud repositooriumi kausta:

cd git-workshop

Nüüd ongi projekt olemas ja saad sellega tööle asuda.

Kasutatud materjalid: