Git + GitHub

Kako je prošla zadaća?

Git repozitorij koji jedino postoji lokalno nije pretjerano koristan

Prednosti postaju očite tek online

Što je GitHub?

  • web aplikacija za suradnju pomoću Git repozitorija
  • puno open source softvera je na GitHubu
  • podržava 🌎 javne i 🔒 privatne repozitorije

Uvod u sučelje

https://github.com/tonkec

Što je github graf?

Contribution activity

Feed

Cool useri

Follow them

btw poznate programerke

Kako izgleda github repo?

Pogledajmo primjere repozitorija

Neke od značajki GitHuba

Prijavljivanje problema

Otkrili smo problem u softveru, ali ne znamo ga popraviti, što sad? Možda autor nije svijestan_na, hajmo ga barem prijaviti!

Popravljanje problema

Otkrili smo problem i znamo ga popraviti, izvrsno!

Financiranje projekata

Zbog toga što se open source softver nudi besplatno, programeri nemaju uvijek vremena raditi na njemu, popravljati bugove i sl. Pomoću GitHuba firme mogu financirati projekte o kojima puno ovise.

Diskusije

Ponekad želimo razgovarati o nečemu vezanom za projekt, recimo želimo pomoć, predložiti neku promjenu ili sl.

I brooojne druge značajke!

git config user.name
git config user.email

Upiši u terminal

Kako kreirati repozitorij na GitHubu? 👇

1. Instaliraj GitHub CLI

2. U svom repozitoriju (vjezba) pokreni gh repo create i slijedi upute

3. Vjerojatno trebaš upisati svoj GitHub username i password

4. Otvori svoj github repo u browseru

5. git remote add origin

6. git push origin master

Svaki put kad želiš updateati online repozitorij pokreni
git push origin master

Github repo se moze kreirati i u browseru

https://github.com/new

Javni ili privatni?

Ograničavanje vidljivosti repozitorija na GitHubu 

👇

Javne repozitorije mogu vidjeti svi

 Taj kod je onda open source, svi ga mogu kopirati na svoj GitHub, a pushati na original mogu samo oni koje odaberete

Privatne repozitorije možete vidjeti samo ti
i oni koje odabereš

Korisno je npr. kada repozitorij sadrži poslovne tajne 🔑

Zadatak 👇

1. Napravi novi lokalni repozitorij

2. Nazovi ga kako hoces

3. Napravi file README.md unutar novog foldera

4. U README.md napiši "Tutorial project"

5. Dodaj i commitaj file README.md

6. Pushaj lokalni repozitorij na GitHub kao privatni repozitorij

Pokušaj sam_a saznati kako se to radi

gh repo create --help

7. Posjeti repozitorij na GitHubu i pretvori ga u javni repozitorij

Pronađi pod "Settings" od repozitorija

Zadatak 👇

Trajni login

Svaki put kada pushaš commitove trebaš upisati svoje GitHub credentialse, to je 👎

Moguće je trajno povezati GitHub s tvojim računalom koristeći SSH ključ

Prvo ga trebaš kreirati

ssh-keygen -t ed25519 -C "your_email@example.com"

Zatim ga dodati u GitHub

Sad pokušaj pushati novi commit, ako te ništa ne pita
to je to!

git pull 👇

git pull origin branch

1. tonkec/novo

2. promijenit cu nesto u README.md direktno na masteru

3. zelim promjene vidjeti lokalno

git clone 👇

git clone https://github.com/...

gh repo clone twbs/bootstrap

Što je pull request/merge request? 👇

1. napravit cu novi branch iz mastera

2. promijenit cu neki file

3. addam i commitam

4. pushnem branch na github

5. napravim PR na master

6. mergam

Zadatak 👇

1. napravi novi branch

2. promijeni nesto u tekstu u README.md

3. dodaj file u staging

4. commitaj file

5. pushni na github

6. napravi PR na master

7. mergaj u master

Problemi (issues) i
pull requestovi👇

Jedni od naječšćih značajki githuba

Probleme je moguće kategorizirati pomoću labela

Npr. bugovi, pitanja, sigurnosni problemi…

Moguće ih je dodijeljivati developerima koji su zaduženi da ih riješe

Može ih se pridružiti raznim ciljevima, npr. "verzija 2"

Pull requestove otvaramo kako bi ih netko pregledao

Obično riješavaju već prijavljeni problem

Moguće ih je pridružiti odgovarajućem problemu

tako da se on automatski zatvori kad se pull request prihvati

Zadatak

Kreiraj problem i riješi ga
pull requestom 👇

Izmisli neki problem,
može biti bilo što

Prijavi ga u svojem repozitoriju i klasificiraj ga kao bug

Riješi problem lokalno u zasebnom branchu, pa pushaj na GitHub

Na GitHubu iz tog brancha kreiraj pull request

Nakon pusha će odmah biti jasno kako

Poveži problem s tim
pull requestom

(Linked issues/pull requests)

Mergaj pull request 🎉

Zadatak 👇

1. kloniraj tonkec/novo

2. napravi novi branch 'update'

3. promijeni nešto u README.md

4. add i commit

5. pushni na github

6. napravi novi PR na master

forkanje 👇

A fork is a copy of a repository that you manage

Kopija se vidi direktno na vašem profilu

Za razliku od git clone, fork ne sinkornizira, ne updejta se

Osim githuba 👇

Osim gita postoji i svn

Što je md u README.md? 👇

Što je gist? 👇

Code snippets

Odlično za sheranje kraćeg koda

Zadaća 👇

Pročitaj članke

Prodi tutorial

Pogledaj video

Pogledaj video

Ako želiš znati više

Git + GitHub

By Matija Marohnić