Для начала, скачайте файл contrib/completion/git-completion.bash из репозитория с исходным кодом Git. Поместите его в укромное место — например, в вашу домашнюю директорию — и добавьте следующие строки в .bashrc:
. ~/git-completion.bash
Как только закончите с этим, перейдите в директорию с Git репозиторием и наберите:
$git chec
…и Bash дополнит строку до git checkout. Эта магия работает для всех Git команд, их параметров, удалённых репозиториев и имён ссылок там, где это возможно.
Возможно, вам также пригодится отображение информации о репозитории, расположенном в текущей директории. Вы можете выводить сколь угодно сложную информацию, но обычно достаточно названия текущей ветки и статуса рабочей директории. Чтобы снабдить строку приветствия этой информацией, скачайте файл contrib/completion/git-prompt.sh из репозитория с исходным кодом Git и добавьте примерно такие строки в .bashrc:
. ~/git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export PS1='\w$(__git_ps1 " (%s)")\$ '
Часть \w означает текущую рабочую директорию, \$ — индикатор суперпользователя (обычно $ или #), а __git_ps1 " (%s)" вызывает функцию, объявленную в git-prompt.sh, с аргументом ` (%s)` — строкой форматирования. Теперь ваша строка приветствия будет похожа на эту, когда вы зайдёте в директорию с Git репозиторием:

Рисунок 10. Кастомизированная строка приветствия bash.
Оба вышеперечисленных скрипта снабжены полезной документацией, загляните внутрь git-completion.bash и git-prompt.sh чтобы узнать больше.
Git поставляется с поддержкой автодополнения для Zsh. Просто скопируйте файл contrib/completion/git-completion.zsh в вашу домашнюю директорию и добавьте его в конфигурацию .zshrc. Интерфейс Zsh круче оного в Bash:
$git che
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
Возможные варианты автодополнения не просто перечислены; они снабжены полезными описаниями и вы можете выбрать нужный вариант, нажав Tab несколько раз. Это работает не только для команд Git, но и для их аргументов, названий объектов (типа ссылок и удалённых репозиториев), а также для имён файлов и других вещей.
Настройка строки приветствия в Zsh похожа на таковую в Bash, но в Zsh вы можете установить дополнительную строку приветствия справа. Чтобы отобразить имя текущей ветки в правой строке приветствия, добавьте следующие строки в ваш ~/.zshrc:
setopt prompt_subst
. ~/git-prompt.sh
export RPROMPT=$'$(__git_ps1 "%s")'
В результате вы будете видеть имя текущей ветки в правой части окна терминала каждый раз, как перейдёте внутрь Git репозитория. Это выглядит примерно так:

Рисунок 11. Кастомизированная строка приветствия в zsh.
Zsh настолько конфигурируем, что существуют целые фреймворки, посвящённые его улучшению. Пример такого проекта, называемый "oh-my-zsh", расположен на https://github.com/robbyrussell/oh-my-zsh. Система плагинов этого проекта включает в себя мощнейший набор правил автодополнения для Git, а многие "темы" (служащие для настройки строк приветствия) отображают информацию из различных систем контроля версий. Вот пример настройки Zsh для комфортной работы с Git Пример темы oh-my-zsh..

Рисунок 12. Пример темы oh-my-zsh.
Стандартный терминал командной строки Windows (cmd.exe), на самом деле, не предназначен для специализированного использования Git, но если вы используете Powershell, то это меняет дело. Пакет Posh-Git (https://github.com/dahlbyk/posh-git) предоставляет мощные средства завершения команд, а также расширенные подсказки, что поможет вам поддерживать состояние вашего репозитория на высоком уровне. Выглядит это примерно так:

Рисунок 13. Powershell с Posh-git.
Если Вы установили приложение GitHub для Windows, то Posh-Git уже включен по умолчанию, и все, что вам остается сделать, это добавить в файл profile.ps1 (который обычно расположен в C:\Users\\Documents\WindowsPowerShell) следующие строки:
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1" )
. $env:github_posh_git\profile.example.ps1
Если же вы не используете GitHub для Windows, просто загрузите последнюю версию пакета Posh-Git с (https://github.com/dahlbyk/posh-git), и распакуйте его в директорию WindowsPowershell. После этого запустите Powershell с правами администратора и выполните следующие команды:
Читать дальше