Git naredbe

Instanciranje repozitorijuma

Kada želimo da pratimo fajlove u nekom folderu, potrebno je unutar njega da iniciramo pravljenje “git repozitorijuma”. Pravljenje repozitorijuma se vrši sa naredbom u komandnoj liniji:

git init

Ova naredba unutar našeg foldera kreira novi folder .git (tzv. “repozitorijum”) i u njemu će se nalaziti celokupna baza o našem projektu. Od tog trenutka Git prati projekat i radi snapshot-ove stanja kad uradimo commit. Ukoliko želimo da Git više ne prati naš projekat dovoljno je da obrišemo ovaj folder.

Napomena:
Neophodno je da pre izvršavanja naredbe, u komandnoj liniji namestimo putanju koja ukazuje na folder koji želimo da pratimo.

Git status

Kontrola da li imamo promene na fajlovima u odnosu na zadnji commit, se vrši sa naredbom:

git status

Ako je stanje na radnoj verziji našeg projekta potpuno isto kao i u zadnjoj verziji git repozitorijuma, onda će nas git obavestiti da nemamo ništa za commit-ovanje. U suprotnom, će istaći koji fajlovi su izmenjeni.

Pregled promena koda

Ispisivanje svih razlika izmedju trenutnog stanja projekta na lokalu i zadnje verzije projekta snimljene u repozitorijumu, se dobija sa naredbom:

git diff

Razlika izmedju commit-a na istoj grani

Na sledećem primeru dobijamo razliku izmedju prethodnog commita i commita tri koraka unazad.

git diff HEAD~3 HEAD~1

Razlika izmedju commit-a na dve grane

Kada želimo ispis svih razlika u projektu izmedju dva odredjena snimka stanja na različitim granama, koristimo naredbu sa argumentima nazivi grana:

git diff master sekundarna_grana

Na prethodnom primeru se naredbom dobija razlika izmedju master grane i sekundarne_grane. Obratite pažnju da je redosled pri pisanju grana bitan. Pa bi se za nepravilan redosled desilo da neki fajl koji je dodan u sekundarnoj grani bude prikazan kao da je obrisan.

Slanje promena u pripremni prostor

Da bi poslali snapshot promenjene verzije nekog fajla (npr. proba.txt), u repozitorijum, moramo prvo da pošaljemo snapshot u pripremni prostor (tzv. index). Tek fajlovi koji se nalaze u ovom prostoru se mogu commit-ovati tj. poslati u repozitorijum.

Slanje odredjenog fajla

Slanje samo odredjenog fajla u pripremni prostor sa naredbom:

git add proba.txt

Slanje odredjenog direktorijuma

Sledeća naredba šalje odredjeni direktorijum u pripremi prostor:

git add naziv direktorijuma/*

Slanje snapshot-a svih promenjenih fajlova odredjene ekstenzije iz root-a radnog foldera

Sledeća naredba će prebaciti u pripremni direktorijum sve fajlove koje nadje u glavnom radnom direktorijumu sa .txt ekstenzijom, ali bez fajlova iz podfoldera.

git add *.txt

Slanje snapshot-a svih promenjenih fajlova odredjene ekstenzije uključujući i iz podfoldera

Ukoliko treba da se nadju svi fajlovi sa istom ekstenzijom uključujući fajlove u podfoderima onda se koristi naredba sa navodnicima:

git add ‘*.txt’

Slanje svih fajlova

Sledeća naredba će napraviti snapshot svih promenjenih fajlove iz radnog direktorijuma u pripremni direktorijum.

git add .

Obratiti pažnju kod ove naredbe postoji razmak (space) izmedju add i tačke!

Continue reading…


Git osnove i instalacija

Uvod u sisteme za praćenje koda

Postoje dve vrste sistema za praćenje i kontrolu verzija:

  • Sistem sa centralizovanom verzionom kontrolom (CVCS)

    Ovde pripadaju alati kao što su SVN, Perforce i CVS. Kod CVC sistema svi podaci o verzijama se nalaze na centralnom serveru dok korisnici imaju dostupnu samo trenutnu verziju na kojoj rade. Ovaj princip rada omogućava lakše održavanje i administriranje ali je sigurnost podataka problematična ukoliko dodje do otkaza sistema gube se sve informacije.

  • Sistem sa decentralizovanom verzionom kontrolom (DVCS)

    kojoj pripadaju: Mercurial, Bazaar, Darcs i Git. Kod DVC sistema korisnici pored poslednje verzije preuzimaju i kompletnu bazu o svim verzijama na tom repozitorijumu. U slučaju otkaza sistema dovoljno je da samo jedan od klijenata postavi podatke na server.

Continue reading…


Instalacija alata za web development

Uvod

Ovaj članak služi kao podsetnik jednom web programeru pri instaliranju svih neophodnih alata za rad na novom ili reinstaliranom kompjuteru. Taksativno je opisana instalacija alata koje lično koristim kao i neka njihova osnovna setovanja. Web development pokriva veliki broj različitih tehnologija i programskih jezika stoga je spisak potrebnih aplikacija takodje veliki.

Continue reading…