petak, 27 decembra, 2024
Sam svoj majstor

Git (6. deo): Konfiguracija

Autor: Zlatan Vasović

Nešto što predstavlja veoma bitnu stavku za Git je konfiguracija. Predstavićemo neka od najbitnijih podešavanja.

Lako je podesiti nešto osnovno – e-mail i ime.

$ git config --global user.name "ZDroid" $ git config --global user.email ja@mail.com

Gitconfig

Gitconfig je datoteka u kojoj se nalaze podešavanja Git-a. To je plain text datoteka.

Sistemska podešavanja se nalaze u /etc/gitconfig datoteci. U nju se upisuju podaci kada koristite –system opciju uz git config komandu.

Podešavanja za svakog korisnika se nalaze u ~/.gitconfig datoteci. Nepotrebno je dodavati sistemska podešavanja u podešavanja korisnika, jer sistemska podešavanja važe za sve korisnike.

Svako skladište programskih paketa takođe ima podešavanja – nalaze se u .git/config datoteci.

Osnovna podešavanja

core.editor

Opcija core.editor služi za podešavanje glavnog tekst editora. Vrednost (ime editora) mora odgovarati komandi kojom pokrećemo editor.

$ git config --global core.editor gedit

core.pager

Možemo podesiti raspoređivač stranica (engl. pager) koji najčešće koristimo. On služi za raspoređivanje velikih ispisa komandi po stranicama. Primer možemo videti u izlazu git diff komande. Podrazumevani pager je less.

core.excludesfile

Ova opcija je dodatak gitignore-u. Ukoliko ne želimo da ponavljamo isti kôd u više gitignore-ova, onda možemo tu vrednost dodati u core.excludesfile.

commit.template

Opcija commit.template služi za podešavanje podrazumevane poruke koja se koristi za commit-e. Primer (~/gitmsg.txt):

Naslov Sta se promenilo [issue: #n]

Podešavanje je jednostavno:

$ git config --global commit.template ~/.gitmsg.txt

help.autocorrect

Kada pogrešimo pri kucanju Git komande, pojaviće se nešto ovako:

$ git test git: 'test' is not a git-command. See 'git --help'. Did you mean this? reset

Ukoliko omogućimo help.autocorrect, Git će sam ispravljati greške ako postoji samo jedan predlog.

user.signingkey

Ukoliko želimo da podesimo GPG ključ kojim ćemo stalno potpisivati Git oznake, možemo koristiti ovu opciju.

$ git config --global user.signingkey 

Boje

Mnogima se sviđa mogućnost prikaza boja u izlazu komandi. Git takođe ima tu mogućnost. Opcijom color.ui možemo podesiti boje za komande branch, diff, interactive i status. Moguće opcije su false, true i always. Opcija color.ui = true služi za prikaz boja u većini slučajeva, dok color.ui = always prikazuje boje uvek.

Alternativa svemu ovome može biti korišćenje opcije –color dok izvršavamo Git komande. Ukoliko želimo da je stalno koristimo, napravićemo alias:

$ alias git = git --color

Naravno, možemo posebno podesiti prikaz boja za svaku od gore nabrojanih komandi uz opciju color.. Moguće je i podesiti poseban prikaz boja za specifičan deo, na primer meta informacije za diff (color.diff.meta). Ovde je moguće podesiti čak i debljinu slova, pozadinu i boju. Te vrednosti idu u sledećem redosledu – .

$ git config --global color.diff.meta "blue white bold"

Formatiranje i razmaci

core.autocrlf

Ukoliko razvijamo projekat na Linux-u ili OS X-u i pritom imamo saradnike na Windows-u ili obrnuto, imaćemo probleme sa završavanjem linija. Problem je u standardima, jer Windows koristi carriage-return i linefeed – što daje CRLF. Unix-like sistemi koriste samo linefeed (LF).

Ovo je moguće rešiti opcijom core.autocrlf. Za menjanje iz LF u CRLF koristićemo core.autocrlf true.

$ git config --global core.autocrlf true

Za menjanje iz CRLF u LF koristićemo core.autocrlf input.

$ git config --global core.autocrlf input

Ukoliko želimo da sve ovo poništimo, koristićemo core.autocrlf false.

$ git config --global core.autocrlf false

core.whitespace

Git ima i opciju za upravljanje razmacima. Raspolaže sa 4 opcije – 2 su podrazumevano uključene, a 2 podrazumevano isključene. Mogu da istaknu ili isprave greške.

Opcije koje su podrazumevano omogućene su trailing-space koji traži razmake na kraju linija i space-before-tab koji traži razmake pre tabulatora na početku linije.

Dve koje su podrazumevano onemogućene su indent-with-non-tab koji traži linije koje počinju sa 8 ili više razmaka umesto tabulatora i cr-at-eol koji proverava da li su carriage return-ovi u redu.

Koja opcija će biti isključena, a koja ne, možemo podesiti upisivanjem željenih opcija, razdvojenih zarezima. Opcije koje se tu ne nalaze su isključene. Možemo isključiti opcije i dodavanjem prefiksa „” ispred opcije. Podešavanje izgleda ovako:

$ git config --global core.whitespace \ trailing-space,indent-with-non-tab

Ukoliko želimo da obeležimo greške u nekoj zakrpi koristićemo:

$ git apply --whitespace=error 

Greške možemo ispraviti korišćenjem –whitespace=fix-a.

$ git apply --whitespace=fix 

Prethodni deo  | Nastavak