Как получить завершение bash для работы с псевдонимами в Windows 10 bash? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть файл aliases.sh, измененный с помощью

alias gc='git checkout'

и после проверки длинного имени ветки, если я наберу gc <branchstring> + TAB, автозаполнение не работает, чтобы появилось полное имя ветви.

1 Ответ

0 голосов
/ 19 ноября 2018

Я просмотрел все в этой теме , чтобы попытаться заставить его работать и адаптировать то, что сказал kpsfoo , но для ОС Windows 10.

Шагибудет:

1) Скопировать файл git-creation.bash из

<your git install folder>/etc/git-completion.bash

в

C:\Users\<YourUserName>\git-completion.bash

2) добавить эту строку кода:

source ~/git-completion.bash в ваш aliases.sh файл

(который можно найти в <your git install folder>\etc\profile.d)

3) Добавить alias gc='git checkout' & Добавить __git_complete gco _git_checkout в любом месте после строки source ~/git-completion.bash в вашем aliases.sh файл.

4) Перезагрузите ваш git bash и наслаждайтесь автоматическим завершением псевдонима!

Пример: если у меня есть ветка VeryVeryLongBranchName, и я в настоящее время на ветке dev, и я хочу переключиться на нее, вместо того, чтобы набирать git checkout VeryVeryLongBranchName, я могу набрать только gc Very + Клавиша TAB и она эквивалентна приведенной выше инструкции.

Пример всего, что у меня есть в моем файле aliases.sh (и он будет расширен, так как я нахожу необходимость в других псевдонимах).) будет:

alias ga="git add"
alias gb='git branch'
alias gba="git branch -a"
alias gc='git checkout'
alias gcb='git checkout -b'
alias gcam='git commit -a -m'
alias gm='git merge --no-ff'
alias gps='git push wpdev dev'
alias gpsm='git push wpdev master'
alias gpl='git pull wpdev dev'
alias gplm='git pull wpdev master'
alias st='git status'
alias l='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
alias last='log -1 HEAD'
alias gs='git stash'

# Enable the __git_complete function to autocomplete aliases once you press TAB
source ~/git-completion.bash

__git_complete ga _git_add
__git_complete gc _git_checkout
__git_complete gm _git_merge
__git_complete gb _git_branch
__git_complete gba _git_branch
__git_complete l _git_log

case "$TERM" in
xterm*)
    # The following programs are known to require a Win32 Console
    # for interactive usage, therefore let's launch them through winpty
    # when run inside `mintty`.
    for name in node ipython php php5 psql python2.7
    do
        case "$(type -p "$name".exe 2>/dev/null)" in
        ''|/usr/bin/*) continue;;
        esac
        alias $name="winpty $name.exe"
    done
    ;;
esac

- примечание стоит: alias gm='git merge --no-ff' отлично сочетается с __git_complete gm _git_merge (при наборе гм плюс строка из названия вашей ветви и нажатии TAB , он будет автоматически завершен, и после запуска команды слияние будет учитывать правило - no-ff )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...