相关疑难解决方法(0)

Git别名与位置参数

基本上我想尝试别名:

git files 9fa3
Run Code Online (Sandbox Code Playgroud)

...执行命令:

git diff --name-status 9fa3^ 9fa3
Run Code Online (Sandbox Code Playgroud)

但是git似乎没有将位置参数传递给alias命令.我试过了:

[alias]
    files = "!git diff --name-status $1^ $1"
    files = "!git diff --name-status {1}^ {1}"
Run Code Online (Sandbox Code Playgroud)

......以及其他一些但不起作用.

退化的情况是:

$ git echo_reverse_these_params a b c d e
e d c b a
Run Code Online (Sandbox Code Playgroud)

......我怎么能做这个工作?

git parameters alias command position

244
推荐指数
7
解决办法
5万
查看次数

在bash别名中Git自动完成?

我使用的go是一个简单的bash别名git checkout branchname.我想念的是自动完成功能,它与完整git checkout branchna...命令一起使用,但不在别名中.

有没有办法指示Bash"继承"另一个命令的自动完成"驱动程序"?

git bash

60
推荐指数
5
解决办法
9955
查看次数

如何使用zsh compinit启用git文件选项卡完成?

我的zsh选项卡完成有问题:运行后:

autoload -U compinit
compinit
Run Code Online (Sandbox Code Playgroud)

文件的Git选项卡完成不再起作用.例如,如果我输入git add my_f来完成my_file,则没有任何反应.zsh git完成似乎只适用于git分支和标记.

没有compinit的东西,git文件完成工作,但当然我错过了所有花哨的分支完成的东西.

那么......有没有办法在zsh中同时完成git文件的完成和git branch的完成?这对我很有帮助.

git tabs zsh file zsh-completion

12
推荐指数
1
解决办法
5746
查看次数

指定在 git commit --no-verify 上跳过哪个钩子

是否有办法准确指定git-hook使用时要跳过哪些内容--no-verify--no-verify或者除了完成此任务之外还有其他标志吗?也许只是一个只能跳过的标志pre-commit

我有两个经常使用的钩子,pre-commitcommit-msgpre-commit运行我的 linting、流程检查和一些单元测试。commit-msg将我的分支名称附加到提交消息的末尾。

有时我很想跑,--no-verifypre-commit还是想跑commit-msg

似乎有很多与此类似的 SO 帖子,但没有什么比选择性跳过--no-verify.

pre-commit pre-commit-hook githooks

6
推荐指数
2
解决办法
8686
查看次数

分支自动完成功能不适用于推送的git别名

我正在使用Git和git-completion,一切正常,只有一个例外:当我这样做时

git p some_remote [TAB]

我得到自动完成建议当前目录中的文件(错误).p是一个Git别名:

$ cat ~/.gitconfig
[alias]
    p = push
Run Code Online (Sandbox Code Playgroud)

当我做的时候:

git push some_remote [TAB]
Run Code Online (Sandbox Code Playgroud)

我得到了当前存储库中的分支的建议(正确).在这两种情况下,完成some_remote工作正常.

这是什么原因?

git bash autocomplete bash-completion

5
推荐指数
1
解决办法
1612
查看次数

如何在 Windows 10 bash 中使用别名进行 bash 补全?

我有一个 aliases.sh 文件修改为

alias gc='git checkout'
Run Code Online (Sandbox Code Playgroud)

并且在检查长分支名称时,如果我键入 gc <branchstring>+ TAB ,自动完成功能将不起作用,以便显示完整的分支名称。

git

5
推荐指数
1
解决办法
2753
查看次数

bash 别名不自动完成与别名相同

我正在尝试用更直观的 watch 命令替换 vlc。

所需的功能

  1. 自动完成

    观看 /path/to/mo Tab --> 观看 /path/to/movie.avi

  2. 执行vlc

    watch /path/to/movie.avi Enter# 这应该运行 `vlc /path/to/movie.avi

目前我正在使用上面的别名 todo :

~/.bashrc

...
alias watch='vlc'
...
Run Code Online (Sandbox Code Playgroud)

这符合execute vlc上面的要求,但没有给出正确的autocompletion[1]

目前的行为

$ vlc /path/to/mo Tab--> vlc /path/to/movie.avi (成功完成)

$ watch /path/to/mo Tab--> watch /path/to/mo (不是自动完成..)

正如@GUIDO 提到的,watch是一个内置命令。这在某种程度上影响了自动完成。更改为play有效,但想了解为什么这不起作用以及如何修复..

笔记

类似于如何让 bash 补全与别名一起使用?

但定义函数wrap_alias(在我的~/.bashrc中)并调用

wrap_alias watch vlc ''
Run Code Online (Sandbox Code Playgroud)

没有解决自动完成问题

bash alias autocomplete

2
推荐指数
1
解决办法
1098
查看次数

别名g ='git'并且bash完成仍然有效

对于git自己的别名,例如.alias g=git,你会在这里更容易找到答案.

对于git子命令别名,例如.alias gco = "git checkout",看这里.


git经常打字,所以我把它别名:

alias g='git'
Run Code Online (Sandbox Code Playgroud)

但是,现在我做不到:

g comtab

并完成呈现给我:

g commit

如何重新开始运行?


重复分化

这个平等的第一个元回答建议保持具体案例与一个更通用的问题的链接.我在此编辑中添加了更通用案例的链接.

断言的重复问题更通用 - 但主要是关于git子命令的别名,而不是git本身的别名.

这个问题是关于别名git本身的具体情况.

在标记的副本中,git-itself case仅在第4个显示的答案中回答,并在对第一个列出的答案的评论中回答.第二部分拼图(源/usr/share/bash-completion/completions/git)需要阅读另一条评论才能通过该方法使其工作.

解决以下评论中的链接:

  • @ ewcz的链接是标记的副本,已经解决了
  • Remy J的链接
    1. 这是问题(和回答)也是关于git子命令的问题
    2. 这是一个关于非git别名的更普遍的问题,在这种情况下并不接近最佳解决方案
    3. 这与@ ewcz的链接(已经解决)相同

git bash autocomplete git-completion

2
推荐指数
1
解决办法
485
查看次数