-
1. Начало
- 1.1 За Version Control системите
- 1.2 Кратка история на Git
- 1.3 Какво е Git
- 1.4 Конзолата на Git
- 1.5 Инсталиране на Git
- 1.6 Първоначална настройка на Git
- 1.7 Помощна информация в Git
- 1.8 Обобщение
-
2. Основи на Git
-
3. Клонове в Git
-
4. GitHub
-
5. Git инструменти
- 5.1 Избор на къмити
- 5.2 Интерактивно индексиране
- 5.3 Stashing и Cleaning
- 5.4 Подписване на вашата работа
- 5.5 Търсене
- 5.6 Манипулация на историята
- 5.7 Мистерията на командата Reset
- 5.8 Сливане за напреднали
- 5.9 Rerere
- 5.10 Дебъгване с Git
- 5.11 Подмодули
- 5.12 Пакети в Git (Bundling)
- 5.13 Заместване
- 5.14 Credential Storage система
- 5.15 Обобщение
-
6. Настройване на Git
- 6.1 Git конфигурации
- 6.2 Git атрибути
- 6.3 Git Hooks
- 6.4 Примерна Git-Enforced политика
- 6.5 Обобщение
-
7. Git и други системи
- 7.1 Git като клиент
- 7.2 Миграция към Git
- 7.3 Обобщение
-
8. Git на ниско ниво
- 8.1 Plumbing и Porcelain команди
- 8.2 Git обекти
- 8.3 Git референции
- 8.4 Packfiles
- 8.5 Refspec спецификации
- 8.6 Транспортни протоколи
- 8.7 Поддръжка и възстановяване на данни
- 8.8 Environment променливи
- 8.9 Обобщение
-
9. Приложение A: Git в други среди
-
10. Приложение B: Вграждане на Git в приложения
- 10.1 Git от команден ред
- 10.2 Libgit2
- 10.3 JGit
- 10.4 go-git
- 10.5 Dulwich
-
A1. Приложение C: Git команди
- A1.1 Настройки и конфигурация
- A1.2 Издърпване и създаване на проекти
- A1.3 Snapshotting
- A1.4 Клонове и сливане
- A1.5 Споделяне и обновяване на проекти
- A1.6 Инспекция и сравнение
- A1.7 Дебъгване
- A1.8 Patching
- A1.9 Email команди
- A1.10 Външни системи
- A1.11 Административни команди
- A1.12 Plumbing команди
9.7 Приложение A: Git в други среди - Git в Zsh
Git в Zsh
Zsh също има tab-completion библиотека за Git.
За да я ползвате, просто изпълнете autoload -Uz compinit && compinit
във вашия .zshrc
файл.
Интерфейсът на Zsh е малко по-гъвкав от този на Bash:
$ 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
Както виждате, възможните варианти не само се показват, но се и описват и можете графично да минавате през тях натискайки клавиша табулация. Това работи за Git команди, за аргументите им и за имена в рамките на хранилище (refs и remotes), а също така и за имена на файлове и за всички други неща, които Zsh знае как автоматично да допълва.
Zsh има също така framework за извличане на информация от version control системи, наречена vcs_info
.
За да включите името на клона отдясно в промпта, добавете тези редове в ~/.zshrc
:
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'
В резултат на това ще имате името на клона в дясната част на прозореца, когато сте в Git хранилище. Разбира се, поддържа се и лявата страна, просто разкоментирайте присвояването към PROMPT. Изглежда приблизително така:
zsh
промптЗа повече информация за vcs_info, погледнете документацията в zshcontrib(1)
man страницата или онлайн на адрес http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.
Вместо vcs_info
, може да изберете prompt customization скрипта, който е част от Git и се нарича git-prompt.sh
; вижте https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh за подробности.
git-prompt.sh
е съвместим с Bash и Zsh.
Zsh е достатъчно мощен и има цели frameworks предназначени да го направят още по-добър. Една от тях е "oh-my-zsh", налична от https://github.com/robbyrussell/oh-my-zsh. Плъгин системата на oh-my-zsh идва с git tab-completion и има разнообразни промпт "теми", много от които показват version-control информация. Изображението от фигурата Пример за oh-my-zsh тема е само един вариант на това какво може да се направи с тази система.