субота, 27 априла, 2024
Сам свој мајстор

Гит (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>

Претходни део  | Наставак