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.