На моей машине с Linux у меня есть автозаполнение веток с помощью Git.
Обратите внимание, что речь идет о завершении ветки git, а не о завершении bash (например, команды, файлы и т. Д.). Таким образом, НЕ ответ Лейна вообще]
Например, я могу набрать git checkout
+ TABи получить список филиалов.
Или я могу набрать git checkout feb*
+, TABчтобы получить все ответвления, начинающиеся с «feb».
Как я могу получить эту функциональность на Mac?
Я пытался загрузить и не работает , bash-completion/bash_completion
и , bash-completion/bash_completion.sh.in
но никакой радости. Первый дал сообщение об ошибке declare: -A invalid_option
. Второй не дал ошибок. Когда я git checkout
+, TABхотя я все еще получаю список файлов в каталоге, а не филиалов. Я в корне проекта.
Автозаполнение для каталогов и команд bash работает нормально, так что это специфично для Git.
источник
Models
папки, когда я нажимал,m
Tab
чтобы сделать автозаполнениеmaster
.source ~/.bash_profile
после вставки кода. Перезапуск терминала также сделает то же самое.git
но по умолчанию Applegit
)brew install git
и перезапустите терминал для тех, кто сталкивается с такой странной ошибкой, какgit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
Некоторые люди предпочитают использовать менеджер пакетов для автоматизации установки, обновления и настройки пакетов Mac OS. Я фанат менеджеров пакетов, и я думаю, что Homebrew - лучший менеджер пакетов для Mac OS (некоторые скажут, что это де-факто менеджер пакетов Mac OS).
После того, как вы установили Homebrew, вы можете просто установить git вместе с bash-complete с
brew install git bash-completion
.Затем вам нужно будет добавить следующее в ваш
~/.bash_profile
:(Примечание: если эта установка завершается с ошибкой 404, и у вас уже установлен git, просто удалите часть git этой установки brew)
Больше информации об установке git и bash-дополнения с brew здесь.
источник
git
и добавлениеbash-completion
- это совсем не то же самое, что добавление..git-completion.bash
Это разные программы, и они делают совершенно разные вещи: одна выполняет автозаполнение команды bash, а другая - автозаполнение команды git, и 'nair the twain встретится;)~/.bash_profile
?Запустите это на терминале:
Затем сделайте это:
Добавьте эти строки:
Вот и все. Это сработало для меня.
источник
~/.bash_profile
файл не существует. Это нормально, просто создайте файл и поместитеif
туда этот скрипт и сохраните. Перезагрузите свою оболочку после и она заработает.git
иgit-completion.bash
уже идут с инструментами командной строки macOS (xcode-select --install
). Чтобы включить автозаполнение bash, добавьте это в свой~/.bash_profile
.Это также включит автозаполнение для веток git.
источник
Вот что сбивает с толку некоторых из вас: у вас установлены brew или порты, но вы используете системный мерзавец
/usr/bin/
. Чтобы проверить это:Если вы видите,
/usr/bin/git
либо brew настроен неправильно, либо вы не установили git через brew.Если вы устанавливаете git через brew, то включение дополнений bash для brew также включает завершение bash для git. Это потому, что на
/usr/local/etc/bash_completion
самом деле все находится в/usr/local/bash_completion.d
исходном коде, и пакет brew для git устанавливает там скрипт завершения git.источник
Вы можете установить bash и git из MacPorts с включенной опцией "bash_completion". Это, вероятно, самый простой способ поддерживать как git, так и дополнения в актуальном состоянии.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
Чтобы установить MacPorts: http://www.macports.org/install.php/
Дополнительная информация
Что касается поиска настроек завершения в вашей системе Linux, посмотрите в /etc/bash_completion.d/git (это длинный файл). Однако копирование этого файла, скорее всего, не сработает, так как оно разработано так, чтобы его можно было получить из среды завершения через / etc / bash_completion (которая получена из /etc/profile.d/bash_completion.sh; файлы в / etc / profile .d получены из / etc / profile).
источник
Если ваше завершение git частично нарушено, даже после получения источника
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
, вам может потребоваться просто обновить версию git.Например, когда я набрал
git check
+TAB
, он будет автоматически заполнятьсяgit checkout
. Но когда я набралgit checkout
+TAB
, он не отображал только список ветвейHEAD
.Исправление для меня было обновить мою
git
версию. Я был на 2.7.0, который, видимо, не был совместим с последнейgit-completion.bash
. Я запустилbrew upgrade git
, обновил его до 2.13.0, и теперь он правильно заполняет имена моих веток.источник
brew upgrade git
иbrew link git
(с включенным переопределением)update
наupgrade
.Безусловно, лучшая рекомендация, которую я нашел для решения этой самой проблемы, - это SpinDance от Connor Livingston :
источник
Пробовал, и он работает хорошо для веток, но когда вы делаете
git st
+,tab
то это показывает ошибку, как этоПоискал в интернете и обнаружил, что
--list-cmds
в.git-completion.bash
последней версии git и на моем mac версия git была2.17.2
Вот решения
Решение 1
git --version
командыЗатем поместите тот же номер версии в URL, как я сделал
Затем выполните те же действия, что и в верхнем ответе, введите приведенный ниже код в
~/.bash_profile
Решение 2
Вы должны попробовать обновить версию git до последней, чтобы она работала.
источник
Установите oh-my-zsh и установите zsh в качестве оболочки по умолчанию, и спасибо мне позже :)
источник
Большинство пользователей будут
git
установлены как часть инструментов командной строки xcode в,/usr/bin/git
а правила завершения bash для git будут доступны в/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
.В этом случае нет необходимости устанавливать git из Homebrew или исходные правила завершения git из raw.githubusercontent.com. Просто создайте символическую ссылку следующим образом:
Примечание: убедитесь, что вы установили и настроили
bash-completion
пакет от Homebrew.источник
Найдите свой
.bashrc
файл.Откройте его и добавьте эту строку внизу:
source /etc/bash_completion.d/git
источник
/etc/bash_completion.d/
папке, в относительно новой системе (OSX 10.10.3)./etc/bash_completion.d/git
? Это сделало бы ваш ответ более ценным.