如何为 git 别名添加自动完成功能?
How do I add autocomplete to git aliases?
我使用适用于标准命令和简单别名 (co = checkout
) 的 git-autocomplete.bash
文件设置了 git 自动完成功能,但我在 [=13] 中定义了更长的别名=] 文件,我想自动完成分支名称,但我找不到如何执行此操作。
我在 Windows Server 2012 R2 运行 git 2.10.2.windows.1
我的别名是这样的:
mstage = "!git checkout stage && git pull && git reset --hard && git merge --no-commit"
其中
是分支名称 - 我希望它能自动完成
此处我们有两个 windows 操作系统选项:
msysgit
- 下载并放置
git-flow-completion.bash
在主目录中(~/
在
msysgit shell)
使用以下行将 .bashrc
文件添加到您的主目录
(或将此行添加到现有 .bashrc
文件):
来源~/git-流-completion.bash
Cygwin
下载并放置git-flow-completion.bash
到
%CYGWIN_INSTALLATION_DIR%\etc\bash_completion.d
重命名为git-flow
您可以按以下方式自动完成:git flow init
等等
@Rohit Poudels 如果您在 Windows 上使用 bash,则答案有效。如果您使用的是 PowerShell,目前启用此自动完成的唯一方法是在安装后手动更改 posh-git。
我更改了 posh-git 中的 GitTabExpansion.ps1 文件,类似于 outlined on the repo。
更具体地说,我将 $line = $line -replace '^git mstage ', 'git checkout '
添加为函数 TabExpansion
的第一行,这实际上会将我的别名视为等同于 git checkout
,然后制表符扩展将表现为预计
我使用适用于标准命令和简单别名 (co = checkout
) 的 git-autocomplete.bash
文件设置了 git 自动完成功能,但我在 [=13] 中定义了更长的别名=] 文件,我想自动完成分支名称,但我找不到如何执行此操作。
我在 Windows Server 2012 R2 运行 git 2.10.2.windows.1
我的别名是这样的:
mstage = "!git checkout stage && git pull && git reset --hard && git merge --no-commit"
其中 是分支名称 - 我希望它能自动完成
此处我们有两个 windows 操作系统选项:
msysgit
- 下载并放置
git-flow-completion.bash
在主目录中(~/
在 msysgit shell) 使用以下行将
.bashrc
文件添加到您的主目录 (或将此行添加到现有.bashrc
文件):来源~/git-流-completion.bash
Cygwin
下载并放置
git-flow-completion.bash
到%CYGWIN_INSTALLATION_DIR%\etc\bash_completion.d
重命名为
git-flow
您可以按以下方式自动完成:
git flow init
等等
@Rohit Poudels 如果您在 Windows 上使用 bash,则答案有效。如果您使用的是 PowerShell,目前启用此自动完成的唯一方法是在安装后手动更改 posh-git。
我更改了 posh-git 中的 GitTabExpansion.ps1 文件,类似于 outlined on the repo。
更具体地说,我将 $line = $line -replace '^git mstage ', 'git checkout '
添加为函数 TabExpansion
的第一行,这实际上会将我的别名视为等同于 git checkout
,然后制表符扩展将表现为预计