Repositooriumi loomine
git init -b main


Repo-tasemel Giti kasutaja seadistamine
cat .git/config
git config user.name "Hussein Tahmazov"
git config user.email "tahmazovhussejn@gmail.com"

git algseisu kontroll
dir .git\index
git count-objects -v
type .git\HEAD
Enne käsku „git add“ peaks kuvatama teade, et fail puudub.



Esimene commit
git status
git add .
dir .git\index
git count-objects -v
git commit -m "Esimene commit loomade blogiga"
git log --oneline





Seal on mõned vead, seega parandame neid:


Teine commit
git status
git add index.html
git commit -m "Paranda elevant kirjaviga"
git log --oneline


Kolmas muudatus
näide sellest, mida me faili lisame:
<h2>Känguru</h2>
<p><b>Eluase:</b> Austraalia</p>
<p><b>Kaal:</b> 20-90kg</p>
<p><b>Pikkus:</b> 1-2m</p>
<br>
Kasutatud käsud:
git status
git add index.html
git commit -m "Lisa känguru-osa"

Iga commit

Ülesanne 1.2
Repositooriumi loomine
git init -b main

Globaalse kasutaja ja e-posti määramine
git config --global user.name "Hussein Tahmazov"
git config --global user.email "tahmazovhussejn@gmail.com"
git config --global --list --show-origin

.git folder, HEAD, and branch file
dir .git
type .git\HEAD
type .git\refs\heads\main



esimene commit
Kõigepealt lisame need commit’i ja veendume, et need on seal olemas
git status
git add .
git status

git commit -m "Esimene commit koos matemaatikaraamatukoguga"

git rev-parse HEAD

git cat-file -p HEAD

Pärast puud esitatud hash-väärtus on hoidla juurpuud vastav hash-väärtus.
git cat-file -p TREE_HASH_HERE

type .git\HEAD

type .git\refs\heads\main

Nüüd on see olemas ja sisaldab esimese commit’i hash-väärtust.
Vastus küsimusele: Praegune haru viitab esimese commit’i objektile.
Käivita test.py


Teine commit
git commit -m „Lisa Pythoni vahemälufailid pärast testi läbiviimist“

git cat-file -p HEAD

$branchHash = Get-Content .git\refs\heads\main
git cat-file -p $branchHash

Praegune haru main viitab nüüd teisele commit’i objektile. Teine commit sisaldab parent rida, mis viitab esimesele commit’ile.
2 harjutus
git init -b main
git add .
git commit -m "Esimene commit koos geomeetrilise raamatukoguga"

Uute funktsioonide loomine ja nendele üleminek
git branch new-features
git checkout new-features

Lisa fail „rectangle.py“


git status
git add .

git commit -m "L-03: Lisati fail rectangle.py

Lisa fail „triangle.py“

Paranda faili rectangle.py
alates:
def perimeter(a, b):
return a + b
sellele:
def perimeter(a, b):
return 2 * (a + b)

git status
git add .
git commit -m „L-03: Lisati fail triangle.py ja parandati ristküliku ümbermõõdu viga“

Kogu hoidla ajalugu
git log --all --graph --oneline


Ainult praeguse haru ajalugu, milles on kaks uut kinnitust
git log --graph --oneline main..new-features

Võrdle kahte viimast commit’i käsuga git diff
git log --oneline -2

// git diff FIRST_COMMIT_HASH SECOND_COMMIT_HASH
git diff 43509c0 4c8f6d1

Kustuta uued funktsioonid ilma ühendamiseta
git checkout main
git branch -d new-features
Kuna seda ei ole ühendatud, võib tavaline kustutamine ebaõnnestuda:

Sundkustutamine:
git branch -D new-features

3 harjutus
Check branches and structure
git status
git branch
git branch -a

git checkout main
git checkout develop
git checkout feature

git log --all --graph --oneline --decorate

Luua arendada haru
git checkout -b develop

git branch

Loo fail calculate.py


Commit calculate.py
git status
git add .
git commit -m "L-03: Lisa fail calculate.py"
Dokumendi ajakohastamine develop
## Calculate module
The file calculate.py connects the formulas from different modules.
It can return area and perimeter values for shapes.
git status
git add .
git commit -m "L-03: Uuenda faili calculate.py dokumentatsiooni"

Loo funktsiooniharu feature
git checkout main
git checkout -b feature
git branch

Loo rectangle.py


git add .
git commit -m "L-03: Loo rectangle.py"

Loo vale viimane kinnitus feature
Seega on meil vaja ühte vale viimast kinnitust, et saaksime selle hiljem tühistada käsuga revert


git add .
git commit -m "L-03: halvasti triangle.py commit"

Nüüd on funktsioon valmis ja selle viimane muudatus on vigane.
Vaata graafiku ajalugu
git log --all --graph --oneline --decorate


Pärast mõningaid parandusi peaks see nüüd korralikult töötama
git checkout feature

vale kinnituse tühistamine
git revert HEAD --no-edit

Oli mõningaid probleeme, aga ma lahendasin need

Tulemus:
git log --oneline -4
git status

Haru arendamine: kahe kinnituse ühendamine
git checkout develop
git log --oneline -3

Kaks viimast muudatust
pehme taaskäivitamine ja pehme taaskäivitamine:
git reset --soft HEAD~2
git status

üks kombineeritud kinnitus:
git commit -m "L-03: Lisa fail calculate.py ja uuenda dokumentatsiooni"

git log --oneline -3

Loo katse alusel main
git checkout main
git checkout -b experiment
git branch

README alates develop
git restore --source develop -- docs/README.md
git status

I got some issues so I am gonna just check

git restore --source develop -- geometric_lib-main/docs/README.md

git restore --source develop -- geometric_lib-main/docs/README.md
git restore --source develop -- geometric_lib-main/calculate.py
git restore --source feature -- geometric_lib-main/rectangle.py

git status

git add geometric_lib-main/docs/README.md geometric_lib-main/calculate.py geometric_lib-main/rectangle.py
git commit -m "Lisa eksperimendiks arvutus- ja ristkülikufailid"

Kustuta failid circle.py ja square.py
git rm geometric_lib-main/circle.py geometric_lib-main/square.py
git commit -m "L-03: Kustuta eksperimendist failid circle.py ja square.py"


Lõplik kontroll
git status
git log --all --graph --oneline --decorate

Harjutus 4
Loo release haru
git checkout main
git checkout -b release
Loo user_agreement.txt


git add geometric_lib-main\user_agreement.txt
git commit -m "L-04: Kasutajatingimuste lisamine"


git add geometric_lib-main\docs\README.md
git commit -m "L-04: Väljalaske jaoks dokumentide ajakohastamine"

Nüüd on sellel versioonil kaks muudatust, mille saame hiljem üheks kokku liita.
Check graph history
git log --all --graph --oneline --decorate

Liida arendusharu põhiharu alla käsuga –no-ff
git checkout main
git merge --no-ff develop -m "L-04: Liita arendusharu põhiharu ilma ff-ita"
git log --all --graph --oneline --decorate


Kustuta see ühendamiskommit
git reset --hard HEAD~1
git log --all --graph --oneline --decorate

Liita arendusharu põhiharu kiirhüppega
git merge --ff develop
git log --all --graph --oneline --decorate

Väljalaske ajal interaktiivne rebase
git checkout release
git config --global core.editor "notepad"
git rebase -i main



Rebase’i käigus tekib konflikt

git status


git add geometric_lib-main\docs\README.md
git rebase --continue


Liitmise versiooni kiiresti peavõrku lisamine
git checkout main
git merge --ff-only release

git status
git log --all --graph --oneline --decorate

git merge-base main release

Harjutus 5

Minu haru kloonimine sinu arvutisse




Kohaliku Git-kasutaja seadistamine
git config user.name "Hussein Tahmazov"
git config user.email "tahmazovhussejn@gmail.com"
git config user.name
git config user.email

git remote -v

Laadi alla viimased muudatused
git pull

Muuda README.md

git status

Muudatuse lisamine ja kinnitamine
git add .
git commit -m "L-05: README-dokumendi ajakohastamine"

git log --oneline

Salvestamine minu GitHubi harule
git push



Loo pull-taotlus

Uuendasin Git-harjutuse 5 faili docs/README.md.
Muudatusega lisati dokumentatsiooni lühike märkus õpilastele.
Muudeti ainult README-faili, muud harud ega projektifailid ei muutunud.




