# Priročnik za Git in GitHub - Visual Studio (Windows)
Avtor: Damijan Randl
Datum: 13.03.2022
---
Pred vami je priročnik za delo z Git-om in GitHuba-om v okolju Visual Studio (za Windows naprave). Pri uporabi se predpostavlja, da je na računalniku nameščen Visual Studio 2019 in orodje Git. Prav tako pa potrebujete GitHub račun.
## Lokalni repozitorij - Git:
Najprej si bomo ogledali, kako uporabljamo orodje Git lokalno na naši napravi.
### Inicializacija repozitorija:
Odpremo Visual Studio in ustvarimo poljubno datoteko (primer: konzolna aplikacija). Nov repozitorij lahko inicializiramo na več načinov:
***1.) Način:***
***2.) Način:***
***3.) Način (Preko ukazne vrstice):***
- premaknemo se do ustreznega imenika (mora biti prazen). Ukaz: `cd pot_do_imenika`
- izvedemo ukaz
```
git init ime_repozitorija
```
### Ustvarjanje novih vej (branches):
Zelo pomembena funkcionalnost Git-a je **razvejitev delovnega okolja**. Razne ideje, zamisli in popravke urejamo v posebnih vejah, ki jih lahko nato zlijemo z **glavno (main/master) vejo**, ali pa enostavno zbrišemo. Novo vejo lahko ustvarimo na sledeče načine:
***1.) Način:***
***2.) Način:***
***3.) Način***
***4.) Način (Preko ukazne vrstice):***
- premaknemo se v imenik našega repozitorij
- izvedemo ukaz
```
git branch ime_veje
```
### Ukaz Commit:
Z ukazom **commit** potrdimo spremembe, ki smo jih ustvarili v kodi. Dobra praksa programiranja je, da ta ukaz izvedemo za vsako konkretnejšo spremembo v kodi in pri tem napišemo ustrezen komentar. S commit-anjem se tudi izognemo zmedi glede vejitve. V Visual Studiu se namreč vse necommitane nove datoteke vidijo v naši glavni veji, česar vsekakor ne želimo!
Ukaz **commit** izvedemo takole:
***1.) Način:***
***2.) Način (ukazna vrstica):***
- preverimo, da smo v našem repozitoriju
- preverimo status našega repozitorija z ukazom `git status`
- z ukazom `git add ime_datoteke` dodamo (**ang. stage**) le izbrano datoteko. Z ukazom `git add -A`, pa commit ukazu podamo na voljo vse spremenjene datoteke.
- na koncu izvedem še ukaz `git commit -m "komentar pri commit-u"`, ki potrdi ustvarjene spremembe.
### Pregled sprememb:
Po navadi želimo pred commitom še vizualno **pregledati spremembe**, ki smo jih ustvarili. Okolje Visual Studio nam ponuja lep pregled kode, kjer so spremenjeni deli ustrezno označeni. Zopet obstaja več načinov kako do pregleda pridemo, spodaj je prikazan eden od njih:
### Zlivanje vej:
Ko smo zadovoljni z implementacijo neke nove ideje, ki smo jo snovali na dodatni veji, jo lahko prestavimo na glavno vejo s pomočjo **zlivanja(ang. merge) vej**. Pri tem moramo zagotoviti, da smo trenutno na glavni (main/master) veji.
***1.) Način:***
***2.) Način:***
***3.) Način (ukazna vrstica):***
- Dodatno vejo zlijemo v glavno s pomočjo ukaza:
```
git merge ime_dodatne_veje
```
### Popravljanje napak:
Če z opravljenim commit-om nismo zadovoljni, ga lahko enostvano **izničimo** oziroma pridemo v stanje pred commit-om. To naredimo na sledeč način:
## GitHub:
Povezava na Github preko Visual Studia je zelo enostavna, saj nam program že sam ponuja to možnost. Obstaja tudi razširitev oziroma paket GitHub Extension for Visual Studio, ki si ga lahko naložimo.
Do GitHub repozitorijev lahko dostopamo na več načinov:
- ustvarimo nov repozitorij v Visual Studiu,
- repozitorij kloniramo iz GitHuba,
- prenesemo .zip datoteko,
- uporabimo možnost Fork repozitory na GitHubu
### Nov repozitorij (GitHub):
Če želimo repozitorij, ki smo ga ustvarili v Visual Studiu s pomočjo Git-a, povezati na GitHub, izvedemo naslednje korake:
### Kloniranje repozitorija:
Na GitHub-u poiščemo ustrezen repozitorij, pritisnemo gumb code in kopiramo povezavo repozitorija. Nato odpremo Visual Studio in izberemo naslednje:
***1.) Način:***
***2.) Način (Ukazna vrstica):***
- Naredimo nov prazen imenik, kjer bomo imeli shranjen repozitorij in se z ukazi v terminalu premaknemo vanj (`cd ime_poti`)
- izvedemo ukaz:
```
git clone povezava_repozitorija .
```
### Push/Pull ukaza:
Pri delu z GitHubom naletimo še na dva ukaza - **pull in push**. Po navadi si sledijo ukazi v vrstnem redu:
1. Commit
2. Pull
3. Push
Pull in push lahko izvedemo na naslednje načine:
***1.) Način:***
***2.) Način:***
***3.) Način:***
***4.) Način (Ukazna vrstica):***
- Za ukaz push:
```
git push origin ime_veje_na_kateri_smo
```
- Za ukaz pull:
```
git pull origin ime_veje_na_kateri_smo
```