Git
Chapters ▾ 2nd Edition

A1.7 Appendix A: Digər Mühitlərdə Git - Zsh’də Git

Zsh’də Git

Zsh ayrıca Git üçün tab-completion kitabxanası ilə təchiz olunur. Onu istifadə etmək üçün sadəcə .zshrc-inizdə autoload -Uz compinit && compinit-i işlədin. Zsh interfeysi Bash-dan biraz daha güclüdür:

$ git che<tab>
check-attr        -- display gitattributes information
check-ref-format  -- ensure that a reference name is well formed
checkout          -- checkout branch or paths to working tree
checkout-index    -- copy files from index to working directory
cherry            -- find commits not merged upstream
cherry-pick       -- apply changes introduced by some existing commits

Birmənalı olmayan tab-completions yalnız siyahıda deyil; faydalı izahatlara malikdirlər və nişanı dəfələrlə vuraraq siyahıda qrafik olaraq gəzə bilərsiniz. Bu, Git əmrləri, arqumentləri və depo içərisindəki şeylərin adları (ref və uzaq məsafələr kimi), həmçinin fayl adları və Zsh-in nəyi tamamlayacağını bildiyi bütün şeylərlə işləyir.

Zsh, vcs_info adlanan versiya nəzarət sistemlərindən məlumat almaq üçün bir çərçivəyə sahibdir. Branch adını sağ tərəfdəki bildirişə daxil etmək üçün bu sətirləri ~/.zshrc faylınıza əlavə edin:

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT=\$vcs_info_msg_0_
# PROMPT=\$vcs_info_msg_0_'%# '
zstyle ':vcs_info:git:*' formats '%b'

Bu, qabığınız Git deposunun içərisində olduqda, terminal pəncərəsinin sağ tərəfindəki mövcud branch-ın göstərilməsi ilə nəticələnir. Əlbətdə sol tərəf də dəstəklənir; yalnız PROMPT üçün tapşırıqdan imtina edin. Biraz buna bənzəyir:

Özəlləştirilmiş `zsh` prompt
Figure 162. Özəlləştirilmiş zsh prompt

vcs_info haqqında daha çox məlumat üçün fayllarını zshcontrib(1) dərslik səhifəsində və ya http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.

vcs_info əvəzinə Git ilə göndərilən, git-prompt.sh adlanan istəmə özəlləştirmə skriptinə üstünlük verə bilərsiniz; Ətraflı məlumat üçün https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh səhifəsinə baxın. git-prompt.sh həm Bash, həm də Zsh ilə uyğundur.

Zsh kifayət qədər güclüdür ki, onu daha da yaxşılaşdırmağa həsr olunmuş bütün çərçivələr var. Bunlardan biri "oh-my-zsh" adlanır və https://github.com/robbyrussell/oh-my-zsh saytında tapa bilərsiniz.

oh-my-zsh-in plagin sistemi güclü git tab-completion ilə gəlir və əksəriyyəti versiya nəzarəti məlumatlarını əks etdirən müxtəlif sürətli "mövzulara" malikdir. An example of an oh-my-zsh theme bu sistemlə nəyin edilə biləcəyinin yalnız bir nümunəsidir.

An example of an oh-my-zsh theme
Figure 163. An example of an oh-my-zsh theme