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.
[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 ш