Szablon:Git/Konfiguracja

Z Wikibooks, biblioteki wolnych podręczników.

Spis treści

[edytuj] Konfiguracja

edytuj

plik konfiguracyjny może być

  • systemowy $(prefix)/etc/gitconfig (zwykle /etc/gitconfig)
  • global ~/.gitconfig (zwykle /home/nazwa_uzytkownika/.gitconfig)
  • lub bez określenia - dla repozytorium $GIT_DIR/config (zwykle repozytorium/.git/config)

[edytuj] Aby git po prostu wypisywał tekst na wyjście. a nie do programu takiego jak less czy more

Jeśli nasz terminal umożliwia przewijanie może wyłączyć korzystanie z pagera. W danym systemie pagerem może być less, more lub inny program. Aby uruchomić jednorazowo polecenie git diff bez pagera należy wykonać

GIT_PAGER="" git diff

Jeśli chcemy mieć to na stałe ustawione należy w pliku ~/.bashrc umieścić linię

export GIT_PAGER=""

i wykonać komendę

source ~/.bashrc

Jeśli dodatkowo korzystamy z gnome-terminal warto zlinkować ~/.profile do ~/.bashrc, ponieważ gnome-terminal wczytuje .profile przy uruchamianiu (możliwe, że tak robią inne terminale w środowisku X)

ln -s ~/.bashrc ~/.profile

[edytuj] Kolorowanie diff włączone dla jednego użytkownika

git config --global color.diff true

[edytuj] Zmiana domyślnego edytora dla git-commit

Według man git-commit edytor jest ustalany w kolejności: zmienna $GIT_EDITOR, zmienna core.editor, zmienna $VISUAL lub $EDITOR. Ale u mnie na gentoo działa tylko przy ustawieniu $EDITOR w pliku /etc/rc.conf.

EDITOR="vim"

[edytuj] Kolorowanie przy edytowaniu notki dla vima

Ze strony [1] ściągamy git.tar i rozpakowujemy go do katalogu domowego. Potem dodajemy jeszcze plik $HOME/.vim/filetype.vim z zawartością

au BufRead,BufNewFile COMMIT_EDITMSG setf git

Od teraz mamy ładne kolorowanie.

[edytuj] Automatyczne dzielenie okna

Do pliku .vim/ftplugin/git.vim dodajemy wpis

if !exists("g:git_diff_spawn_mode")
    let g:git_diff_spawn_mode = 1
endif

W tym samym pliku g:git_diff_opts = "-C -C" należy zamienieć na g:git_diff_opts = "-C -C --no-color" inaczej nie będzie działało kolorowanie.

Nie działa natomiast dzielenie okna przez mapowanie. Błąd w pliku .vim/ftplugin/git.vim. Funkcja wywoływana z dwoma argumentami zamiast trzema. Czyli powinno być:

noremap <buffer> <Leader>gd :call Git_diff_windows(0, 0, g:git_diff_opts)<cr>
noremap <buffer> <Leader>ghd :call Git_diff_windows(0, 0, g:git_diff_opts)<cr>
noremap <buffer> <Leader>gvd :call Git_diff_windows(1, 0, g:git_diff_opts)<cr>

Jednak nadal nie działa przez wywołanie <Leader>gd lub inne mapowania. <Leader> ustawia się przez :let mapleader =",". Wypisanie aktualnej wartości przez :echo mapleader.

Więcej: [2] [3] [4]

[edytuj] Ignorowanie plików

Możemy ustawić ignorowanie śledzenia zmian dla pewnych plików czy katalogów. Te pliki lub katalogi nie mogą być jednak zapisane w repozytorium. Jeśli są już w repozytorium, to trzeba je usunąć i zatwierdzić zmiany przez git-commit -a.

Ignorowanie możemy określić w kilku plikach w systemie: ~/.gitignore, .git/info/exclude. .gitignore w dowolnym lokalnym katalogu objętym śledzeniem. Dodatkowo plik .gitignore możemy włączyć do śledzenia zmian ponieważ znajduje sie w śledzonym katalogu. Poniższy kod może być umieszczony w dowolnym z tych trzech plików.

# Linie zaczynające się od '#' są traktowane jako komentarze.
# Ignoruj każdy plik o nazwie foo.txt.
foo.txt
# Ignoruj (wygenerowane) pliki html,
*.html
# oprócz foo.html który jest zarządzany ręcznie.
!foo.html
# Ignoruj obiekty i archiwa.
*.[oa]
#ukośnij określa najwyższy poziom w repozytorium
/katalog

Więcej informacji na stronie man gitignore ш