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.
$ 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