Git harjutus

Table of Contents

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.

Lisa kommentaar

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga