GIT

Kodearen

Kontrola

Izan.

CodeSyntax

Gaurko plana

  1. CodeSyntax

  2. Zer da Git?

  3. Zertarako behar dugu?

  4. Oinarrizko pausoak

  5. Ariketak

  6. GitHub ekosistema

  7. Kode garbirako printzipioak

Nortzuk gara

  • Eibar, 2000. urtea

  • 17 lankide

  • Oinarria: Software librea

    • Zerbitzuak

    • Webgune, aplikazio garapena

    • Prestakuntza

    • Aholkularitza​

Zer baloratzen da?

Talde lana

Elkarrekin lagundu

Ez da dana jakin behar

Galdetu, galdetu lasai!

Gauzak azaldu, asko laguntzen du gauzak azaltzea

Zer da GIT?

Proiektu batean egindako aldaketak kontrolatzeko programa

Git Lokala da!

Ordenagailuan instalatzen den programa da, zerbitzarira (GitHub) sinkronizatzeko aukera duena

Historia pixka bat

2005ean Linus Torvalsek sortutako tresna bat da.

Linux kernel-a kudeatzeko sortu zen

Gaur egun, proiektuen bertsioak kudeatzeko erabiltzen den tresna nagusiena da. Proiektu handi nahiz txikientzat. 

Baina... Zertarako behar dugu hau?

Aldaketen historikoa izateko

Taldean lan egiteko erraztasuna

Kodea partekatu

Taldean aldi berean lan egiteko gaitasuna

Aldaketak eztabaidatzeko

Erroreak jakinarazteko

Adarrak sortzeko aukera (Branch)

Adar nagusitik, aldaketa alternatiboak sortzeko aukera

Atzera egiteko aukera

  • Proiektu bat igo/jaisterakoan, azken aldaketak bakarrik hartzen dira kontuan.

Hau ez gertatzeko ;)

Ez gaitezen erotu aldaketak non eta noiz egin ditugun bilatzen

Oinarrizko kontzeptuak

Repository

Gure proiektuaren eduki-ontzia izango da. Bertan kode dena joango da

$ git init

Clone

Errepositioak lokalera ekartzeko komandoa.

$ git clone [url]

Fork

Proiektu baten kopia zure kontura ekartzeko aukera ematen digu.

 

Proiektu horretan egindako aldaketak originalera bidaltzeko aukera izango dugu (Pull Request)

Add, Commit & Push

Aldaketa multzo bat gordetzeko erabiltzen da

$ git add test_1.py test_2.py test_3.py
$ git commit -m "Aldaketaren deskribapena"
$ git push origin master

Bi fasetan

Lokalean gorde

Errepositoriora igo

Branch

Adar nagusia (master edo main)

$ git checkout -b "adarraren-izena"
$ git branch

Adar zerrenda ikusteko

Adar bat sortu eta mugitzeko

Adar nagusitik banatzen den bidea da, ondoren berriro elkartu ahal dena

Checkout

Adarren artean (branch) aldatzeko komandoa

$ git branch // Adarren zerrenda ikusi
$ git checkout [adarraren izena] // Adarrera bidaiatu

Merge

Adar (Branch) bat nagusira (Master) fusionatzeko

$ git checkout master // Masterrera bidaiatu
$ git merge [adarraren izena] // Branch-a masterrera ekarri

Pull/Merge Request (GitHub)

Aldarren aldaketak ez dira nagusira zuzenean sartzen.

Pauso extra batetik pasatzen da. Aldaketa berrien eskaera.

Pauso honetan, konfliktorik dagoen ziurtatzen dugu.

Oinarrizko komandoak

Aldaketen egoera ikusi (Status)

$ git status
	modified:   home-page.component.ts
	modified:   home-page.html

Aldaketak gehitu (Add)

$ git add home-page.component.ts home-page.html
(edo dena gehitzeko)
$ git add .

Aldaketak gorde (Commit)

$ git commit -m "Commit-aren mezua"

Aldaketak igo (push)

$ git push origin master
*Gogoan izan git lokala dela.

Beste komandoak

Proiektu bat klonatu

$ git clone git@github.com:bipoza/ionic-super-tabs.git

Proiektu bat banandu

$ git branch proba_001

Masterrera itzuli

$ git checkout master

Branch-era joan

$ git checkout proba_001

Igo! Gogoratu berriz ere, Git lokala da!

$ git push origin proba_001

Hasierako pausoak

Instalazioa

Linux / MacOS

Terminalean integratzen da

Windows

GIT Bash instalatuko du

GitHub

Zer da GitHub?

Lokala ez den aldea!

Hau da, kodea igoko dugun plataforma.

Bueno... Hori baino azkoz gehiago da.

Erabiltzailearekin lotu

Erraza

HTTPS bidez

 

GitHub-eko erabiltzaile eta pasahitzarekin

Egokiena

SSH bidez

 

Bi gako sortuko ditu:

  • Pribatua: Lokalean gordeko dena.
  • Publikoa: GitHub-era igoko dena.

SSH gako publikoa GitHub-en esleitu

Kasu praktikoak

1. Proiektu berri bat sortu

# Joan proiektuaren errora
cd existing_folder

# Git hasieratu
git init

# Lokaleko errepositorioa goiko iturburuarekin lotu
git remote add origin git@github.com:bipoza/test.git

# Ziurtatu ondo gorde den
git remote -v

# Fitxategiak gehitu eta commit egin
git add .
git commit -m "first commit"

# Defektuz master da, baina GitHub-ek main-era aldatzen du
git branch -M main

# Gora!
git push -u origin main

2. Commit berri bat egin

# Aldaketen zerrenda
git status

# Aldaketak gehitu
git add fitxategia.py

# Commit egin
git commit -m "Nire aldaketa berriak"

# Igo! Gogoratu, Git lokada da
git push origin main

3. Branch berri bat

# Adarra sortu + joan
git checkout -b "adar-berria"

# Adarrak ikusi
git branch

1. Adar berri bat sortuko dugu (Lokalean)

2. Adarrean aldaketa batzuk egin eta igoko ditugu

# aldaketak ikusi
git status
# Aldaketak gehitu
git add .
# Aldaketak goiko adarrera igo
git push origin [adarra]

4. Branch-a adar nagusira ekarri (GitHub)

GitHub erabilita (Pull request)

5. Branch-a adar nagusira ekarri (Lokala)

# Master-era bidaiatu
git checkout master

# Badaezpada, goiko azken aldaketak ekarriko ditugu
git pull origin master

# Adarra fusionatu
git merge [adarraren-izena]

# Gora igo
git push origin master

1. Eskuz (merge)

6. Fork eta Pull Request

1. Ondoko ikaskidearen errepositorioaren fork-a egin

2. Zure kopia lokalera ekarri

3. Adar bat sortu 

4. GitHub-en sartu eta Pull Request bat egin

5. Pull request-a onatu eta merge egin masterrera

Binaka egiteko ariketa

GitHub ekosistema

GitHub pages

- Webgune estatikoak igotzeko tresna.

- Oso erabilgarria demoak edo dokumentazioak erakusteko.

Actions

- Lanak automatizatzeko.

 

- CI/CD (continuous integration and continuous delivery) continuous deployment. 

Gist

Kode zatiak eta oharrak partekatzeko.

Kode garbirako printzipioak

  • KISS (Keep It Simple Stupid)
  • DRY (Don't Repeat Yourself)
  • YAGNI (You Aren't Gonna Need It)
  • MVP (Minimum viable product)

KISS (Keep It Simple Stupid)

- Ez galdu denbora gauza konplexuak egiten.

 

- Kodea irakurgarria egin.

 

- Sinplea bada, beste garatzaileentzat ulergarriagoa izango da.

DRY (Don't Repeat Yourself)

- Gauza sinpleak egin, bai, baina ez errepikatu kode berdina.

 

- Ez asmatu asmatuta dagoena. Gaur egun gauza gehienak asmatuta daude.

YAGNI (You Aren't Gonna Need It)

- Ez garatu behar ez duzun hori.

 

- Jarri zure ahaleginak garrantzitsuena

denari.

 

- Beharrezkoak diren liburutegiak erabili.

MVP (Minimum Viable Product)

- Pausoz pauso. 

 

- Ez hasi proiektu bat handian

pentsatzen.

Txikitik hasi eta beharrak asetzen joan.

 

Eta... Orain zer?

Python?

JavaScript?

API Rest?

Unity?

Java?

Teoria oso polita da, baina mundu errealean zer?

Galdera sorkuntza (scripting)

Automatikoki: Wikipedia, Panoramio, gure programazioa...

Eskuz: egunerokotasunekoak, “asteko galderak”...

Wikipedia?

Wikipedia informazioa jasotzeko API askea du

Galderarik?

By @erral

Eskerrik asko!

CodeSyntax