如何在 .gitconfig 别名上使用 bash 命令

3

我使用命令 git ls-tree -r $(git branch | awk '{ print $2 }') --name-only 来显示我的分支上的文件,但是我试图将此命令放入我的.gitconfig文件作为别名,结果出现了以下错误:

$ git list
fatal: Not a valid object name $(git

我的.gitconfig文件:

[alias]
list = ls-tree -r $(git branch | awk '{ print $2 }') --name-only

谢谢
附言:对我的英语表示抱歉


1
如果别名扩展以感叹号为前缀,则将其视为 shell 命令。 - Andrew C
1
可能是重复的问题:如何直接在Git别名中嵌入Bash脚本 - Andrew C
1个回答

3

正如评论中所指出的,您需要在别名前加上感叹号 (!)。

以下输入对我有效:

[alias]
    list = !git ls-tree -r $(git branch | awk '{ print $2 }') --name-only

编辑

或者,您可以参考此答案,在您的PATH中的任何位置创建一个名为git-list的文件,如下:

git-list


该文件的内容如下:
git ls-tree -r $(git branch | awk '{ print $2 }') --name-only

然后使用chmod +x git-list将其权限更改为可执行,并且您可以在任何目录中使用git list命令。


回答这个问题会让关闭变得更加困难。这是重复的,并且核心逻辑有问题。 - Andrew C
@AndrewC 哦,我没有意识到这是一个重复的问题 - 没有现有的关闭投票或类似的评论。 - Anshul Goyal
我在评论和投票关闭之间分心了 :) - Andrew C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接