Muu

Praktiline ülesanne: remote repository

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

Juhised projekti kloonimiseks/forkimiseks leiad siit.

1. Remote'i vaatamine ja haldamine PyCharmis:

  • Avage PyCharmis oma projekt.

  • Ülemisest menüüst valige Git > Manage Remotes....

  • Avaneb aken, kus näete kõiki teie projekti jaoks seadistatud kaugservereid (remotes). Tavaliselt on kaugserveri nimi origin.

  • Siin saate lisada uusi kaugservereid, muuta olemasolevate URL-e või kustutada neid.

2. Remote'i vaatamine ja haldamine terminalis:

  • Vaata olemasolevaid remotes:

git remote -v
  • Lisa uus remote:

git remote add [nimi] [URL]

Näiteks:

git remote add upstream https://gitlab.com/algne/repo.git

Praktiline ülesanne: upstream

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

Juhised projekti kloonimiseks/forkimiseks leiad siit.

1. Upstream'i seadistamine PyCharmis:

  • Kui olete forkinud repositooriumi ja soovite seadistada upstream kaugserveri, et hoida oma fork ajakohasena:
    • Avage Git > Manage Remotes....

    • Klõpsake + nuppu, et lisada uus kaugserver.

    • Nimetage see upstream ja sisestage algse repositooriumi URL.

    • Vajutage OK.

2. Upstream'i seadistamine terminalis:

  • Lisa upstream remote, mis viitab algsele repositooriumile:

git remote add upstream [algse repositooriumi URL]

Praktiline ülesanne: HEAD

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

Juhised projekti kloonimiseks/forkimiseks leiad siit.

1. HEAD'i vaatamine ja muutmine PyCharmis:

  • Vaadake, millises harus HEAD praegu asub, vaadates PyCharmi üleval vasakul nurgas, kus on aktiivse haru nimi.

  • Kui soovite HEAD asukohta muuta (näiteks vahetada haru):
    • Klõpsake aktiivse haru nimel ja valige nimekirjast teine haru, kuhu soovite liikuda ning vajutage Checkout.

2. HEAD'i vaatamine terminalis:

git rev-parse --abbrev-ref HEAD

Praktiline ülesanne: checkout

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

Juhised projekti kloonimiseks/forkimiseks leiad siit.

1. Commiti checkoutimine PyCharmi graafilise liidese kaudu:

Commiti ajalugu ja checkoutimine:

  • Avage oma projekt PyCharmis ja minge Giti branch menüüsse all vasakul ning näete seal commit ajalugu.

  • Leidke commit, mida soovite vaadata, ja paremklõpsake sellel.

  • Valige Checkout Revision....

  • PyCharm viib teid automaatselt selle commit'i juurde ja ajutiselt liigub tööpuu sellesse olekusse, nagu see oli selle commit'i tegemise ajal.

2. Commiti checkoutimine terminali kaudu:

git checkout [haru-nimi]

3. Harude checkoutimine PyCharmi kaudu:

Harule liikumine:

  • Üleval vasakul nurgas näete aktiivse haru nime. Klõpsake sellel, et näha kõiki harusid.

  • Valige haru, kuhu soovite liikuda, ja vajutage sellel klõpsates Checkout.

  • PyCharm vahetab koheselt teie tööpuu selle haru commit'ide järgi.

4. Harude checkoutimine terminali kaudu:

git checkout [commit-hash]
  • Sellega ole ettevaatlik, sest muudatused ei ole seotud ühegi haruga.

Näited:

  • Kasutage commit'i checkout'i, kui soovite ajutiselt vaadata, kuidas kood nägi välja varasema commit'i ajal.

  • Kasutage haru checkout'i, kui soovite liikuda erinevate ülesannete vahel või töötada paralleelselt mitmes harus.

Praktiline ülesanne: rebase

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

Juhised projekti kloonimiseks/forkimiseks leiad siit.

1. Rebase'i tegemine PyCharmi graafilise liidese abil:

Alustage rebase'iga:

  • Veenduge, et olete sellel harus, mida soovite rebase'ida (näiteks feature-branch).

  • PyCharmi alumises paremas nurgas klõpsake aktiivse haru nimel ja vahetage vajalikule harule, kui see pole veel õige.

  • Seejärel minge ülemisest menüüst Git > Rebase....

Rebase'i seadistamine:

  • Avaneb dialoogiaken, kus saate valida, millise haru otsa soovite oma muudatused viia. Tavaliselt valite siin main haru.

  • Valige main haru ja vajutage Rebase.

Konfliktide lahendamine (kui neid esineb):

  • Kui rebase'i käigus tekib konflikte, kuvab PyCharm dialoogi, kus saate konflikte lahendada.

  • Lahendage konfliktid samamoodi nagu merge'i konflikti korral, kasutades Merge Conflicts vaadet.

2. Rebase'i tegemine terminali abil:

  • Vaheta harusse, mida soovid rebase'ida (näiteks feature-branch):

git checkout feature-branch
  • Alusta rebase'i põhiharu main otsa:

git rebase main
  • Kui tekivad konfliktid, lahenda need failides ja jätka rebase'i:

git add lahendatud_fail.txt
git rebase --continue
  • Kui soovid rebase'i katkestada:

  • Kuna rebase muudab ajalugu, pead push'ima sundimisega:

git push origin feature-branch --force
  • NB! Kasuta --force ettevaatlikult, kuna see kirjutab kaugajalugu üle.

Rebase'i lõpuleviimine ja push'imine:

  • Pärast edukat rebase'imist on teie feature-branch haru ajalugu ümber korraldatud nii, nagu need commit'id oleksid tehtud otse main haru otsas.

  • Kui olete rebase'i edukalt lõpetanud, commit'ige ja push'ige muudatused kaugserverisse:
    • Valige Git > Push... ja push'ige muudatused.

  • Kui olete juba varem push'inud oma haru ja teostate nüüd rebase'i, peate võib-olla kasutama --force (PyCharmi kaudu valikuline "Force Push"), et sundida muudatused serverisse.

Näited:

  • Kasutage rebase, et viia oma töö (commit'id) kooskõlla põhiharuga (main) ja hoida ajalugu puhtana ja loogiliselt järjestatuna.

  • Rebase aitab vältida liigseid merge commit'e, mis muudavad ajalugu keerulisemaks, eriti kui töötate suure meeskonnaga.