Гит (6. део): Конфигурација
Аутор: Златан Васовић
Нешто што представља веома битну ставку за Git је конфигурација. Представићемо нека од најбитнијих подешавања.
Лако је подесити нешто основно – e-mail и име.
$ git config --global user.name "ZDroid" $ git config --global user.email ja@mail.com
Gitconfig
Gitconfig је датотека у којој се налазе подешавања Git-а. То је plain text датотека.
Системска подешавања се налазе у /etc/gitconfig датотеци. У њу се уписују подаци када користите –system опцију уз git config команду.
Подешавања за сваког корисника се налазе у ~/.gitconfig датотеци. Непотребно је додавати системска подешавања у подешавања корисника, јер системска подешавања важе за све кориснике.
Свако складиште програмских пакета такође има подешавања – налазе се у .git/config датотеци.
Основна подешавања
core.editor
Опција core.editor служи за подешавање главног текст едитора. Вредност (име едитора) мора одговарати команди којом покрећемо едитор.
$ git config --global core.editor gedit
core.pager
Можемо подесити распоређивач страница (енгл. pager) који најчешће користимо. Он служи за распоређивање великих исписа команди по страницама. Пример можемо видети у излазу git diff команде. Подразумевани pager је less.
core.excludesfile
Ова опција је додатак gitignore-у. Уколико не желимо да понављамо исти кôд у више gitignore-ова, онда можемо ту вредност додати у core.excludesfile.
commit.template
Опција commit.template служи за подешавање подразумеване поруке која се користи за commit-е. Пример (~/gitmsg.txt):
Naslov Sta se promenilo [issue: #n]
Подешавање је једноставно:
$ git config --global commit.template ~/.gitmsg.txt
help.autocorrect
Када погрешимо при куцању Git команде, појавиће се нешто овако:
$ git test git: 'test' is not a git-command. See 'git --help'. Did you mean this? reset
Уколико омогућимо help.autocorrect, Git ће сам исправљати грешке ако постоји само један предлог.
user.signingkey
Уколико желимо да подесимо GPG кључ којим ћемо стално потписивати Git ознаке, можемо користити ову опцију.
$ git config --global user.signingkey <gpg-id>
Боје
Многима се свиђа могућност приказа боја у излазу команди. Git такође има ту могућност. Опцијом color.ui можемо подесити боје за команде branch, diff, interactive и status. Могуће опције су false, true и always. Опција color.ui = true служи за приказ боја у већини случајева, док color.ui = always приказује боје увек.
Алтернатива свему овоме може бити коришћење опције –color док извршавамо Git команде. Уколико желимо да је стално користимо, направићемо alias:
$ alias git = git --color
Наравно, можемо посебно подесити приказ боја за сваку од горе набројаних команди уз опцију color.<команда>. Могуће је и подесити посебан приказ боја за специфичан део, на пример мета информације за diff (color.diff.meta). Овде је могуће подесити чак и дебљину слова, позадину и боју. Те вредности иду у следећем редоследу – „<боја-слова> <боја-позадине> <дебљина-слова>”.
$ git config --global color.diff.meta "blue white bold"
Форматирање и размаци
core.autocrlf
Уколико развијамо пројекат на Linux-у или OS X-у и притом имамо сараднике на Windows-у или обрнуто, имаћемо проблеме са завршавањем линија. Проблем је у стандардима, јер Windows користи carriage-return и linefeed – што даје CRLF. Unix-like системи користе само linefeed (LF).
Ово је могуће решити опцијом core.autocrlf. За мењање из LF у CRLF користићемо core.autocrlf true.
$ git config --global core.autocrlf true
За мењање из CRLF у LF користићемо core.autocrlf input.
$ git config --global core.autocrlf input
Уколико желимо да све ово поништимо, користићемо core.autocrlf false.
$ git config --global core.autocrlf false
core.whitespace
Git има и опцију за управљање размацима. Располаже са 4 опције – 2 су подразумевано укључене, а 2 подразумевано искључене. Могу да истакну или исправе грешке.
Опције које су подразумевано омогућене су trailing-space који тражи размаке на крају линија и space-before-tab који тражи размаке пре табулатора на почетку линије.
Две које су подразумевано онемогућене су indent-with-non-tab који тражи линије које почињу са 8 или више размака уместо табулатора и cr-at-eol који проверава да ли су carriage return-ови у реду.
Која опција ће бити искључена, а која не, можемо подесити уписивањем жељених опција, раздвојених зарезима. Опције које се ту не налазе су искључене. Можемо искључити опције и додавањем префикса „–” испред опције. Подешавање изгледа овако:
$ git config --global core.whitespace \ trailing-space,indent-with-non-tab
Уколико желимо да обележимо грешке у некој закрпи користићемо:
$ git apply --whitespace=error <zakrpa>
Грешке можемо исправити коришћењем –whitespace=fix-а.
$ git apply --whitespace=fix <zakrpa>