Taj Git ne vrijedi ničemu

kontrola kodarazvoj

Članak Git is a Harrier Jump Jet. And not in a good way je klasičan primjer situacije kad se neka aplikacija proglasi lošom zbog nedovoljnog poznavanja iste.


Oni koji žele koristiti samo 3% njegovih funkcionalnosti mogu to bez problema. Znam jer sam prošao taj put, u početku sam koristio 2-3 najosnovnije radnje. Hash kao identifikator inačice zvuči loše ukoliko se s Gitom ne radi kako treba. Kod Gita je commit jeftin i treba ga što češće koristiti. Napravite neku funkcionalnost. Commit. Ispravite bug. Commit. U takvoj slučaju kad imate puno manjih commitova nećete za svaki od njih mijenjati oznaku inačice. Ako hoćete oznaku onda za to upotrijebite oznaku (tag). Savjet: ako baš trebate koristiti hash identifikator ne morate ga navoditi cijelog, dovoljno je prvih nekoliko znakova.


Autor članka se okomio i na činjenicu da treba najprije dodati (git add) neku datoteku i tek onda napraviti commit (git commit). Oni koji žele mogu to obaviti u jednom koraku (-a parametar), a oni koji žele znati više neka prouče što je to staging area. Primjer upotrebe: radite na nekoj funkcionalnosti i uleti vam ispravak nekog buga nevezan za to što radite. U staging area dodate samo taj ispravak i napravite commit. Vratite se onome što radite i poslije commitate taj dio. Poželjno je da commit bude neka cjelina. Na taj način će vam biti jednostavnije korištenje i jedne druge Git funkcionalnosti koja se zove cherry pick.


U jednom je autor članka u pravu, Git se ne može koristiti kao CVS jer to i nema smisla. Ako trebate CVS koristite njega. Osnovna greška koju čine mnogi korisnici, kad prelaze sa stare aplikacije na novu, je da na novoj aplikaciji pokušaju zadržati stari način rada. U želji da što prije počnu raditi korisnici preskaču upoznavanje s novom aplikacijom i proučavanje njezinog načina rada. Pogrešan pristup obično rezultira neželjenim rezultatima i frustracijama. Kad počinjete upoznavati nove alate i aplikacije zaboravite na tren ono što znate od prije, pokušajte neopterećeno i otvoreno upoznati način na koji novi alat rješava probleme.


Aljkavi pilot Harriera se žali i na nedostatak dokumentacije, tutoriala za Git. Izgleda da on uopće nije pogledao što piše na Documentation stranici, nije uspio izguglati git ready, gittutorial, Everyday Git, Git for the lazy...


Senko je na ovogodišnjem DORS/CLUC-u održao Git radionicu na kojoj je prošao osnove i popričali smo o tome kako nedostaje radionica na kojoj bi se pokazali načini korištenja, najbolja praksa i konkretni slučajevi kako koristiti Git. Većina developera će brzo i samostalno naučiti osnove korištenja, ali do najbolje prakse će doći tek vremenom. Bilo bi zgodno kad bi im netko skratio to vrijeme.



Komentari

17. svibnja 2010. 07:53

Ja više volim usporedbu iz , koji kaže kako je Git MacGyver, dok je Mercurial James Bond. To sve govori (iako bi još bolja usporedba da je Mecurial Q, a Git spajalica za papir), i to je glavni razlog zašto sam se odlučio za hg umjesto za git.

17. svibnja 2010. 09:07

super ti je clanak, samo cu stati na kontra stranu i reci da meni Git ne rjesava nijedan problem koji imam sa SVNom (osim brzine), ne donosi nijedan novi koristan feature u odnosu na SVN a pritom je beskonacno kompliciraniji i nema sanse da bih mogao objasniti nekom manje tehnicki nastrojenom (npr. dizajneru) kako da ga uspjesno koristi.

tko ima potrebe za git-om, samo naprijed, ne kazem da je proizvod los, samo meni ne donosi nikakav added benefit pred alatom koji je primjetno jednostavniji

-L

17. svibnja 2010. 15:48

Meni je donio (hg, ne git), jer sad lokalno radim commitove koliko god želim a da oni nikako ne utječu na kod na repozitoriju. I pritom mogu vratiti na staro, klonirati, forkati, što god hoću a da to nema veze s centralnim kodom.

I još nešto: ne znam kako je god gita, ali hg ima tako elegantno riješeno HTTP serviranje da je to prava milina. Sa subversionom sam se uvijek mučio do besvijesti da repozitorij bude dostupan na Webu, dok ovdje mogu to napraviti s jednom komandom, i još k tome to može biti repozitorij, a ne samo centralni.

17. svibnja 2010. 20:42

@Berislav: taj članak je iz 2008, znaš li koliko se toga promijenilo od onda? :-)

@Luka: problem je tortoisegit koji je napravljen s idejom da bude što sličniji svn klijentu kako bi tranzicija bila lakša. I napravljen je ofrlje posao. Koliko se sjećam tortoisegit čak i ne podržava staging. Navodno je za windowse puno bolje rješenje .

17. svibnja 2010. 21:37

@Berislav: baš sam naletio na ovo