【发布时间】:2021-09-01 15:38:35
【问题描述】:
我有一堆 git 命令的简写别名。其中之一是git stat 是git status 的缩写。
我在我的全局 git 配置(位于~/.gitconfig)中将别名声明为
[alias]
stat = !"git status"
这工作正常,但出现了一个烦人的问题:当我在 git 存储库中时 git stat 总是显示相对于存储库根目录而不是当前目录的路径。
一个例子:
repo
├── .git
└── folder
└── file
$ cd repo/folder
$ touch fileB
$ git stat
Untracked files:
(use "git add <file>..." to include in what will be committed)
folder/fileB
$ git status
Untracked files:
(use "git add <file>..." to include in what will be committed)
fileB
如您所见,git stat 相对于 repo 列出了 fileB,而 git status 相对于 repo/folder 列出了它。
我怎样才能使我的别名表现得像原始命令一样?
【问题讨论】:
-
为什么你的
!在双引号之外?也许无关,但很奇怪。而且它也不需要,stat = "status"很好(而且几乎没用......获得 2 次击键?) -
嗯,老实说不知道但不会改变任何东西。关于无用:你把线放在哪里?我认为
stat可读性强,但有点短,所以为什么不呢。 -
@RomainValeri:确实,无关:您可以根据需要在任何地方输入和退出双引号。 shell 的工作方式相同,这意味着有一种简单的方法可以为
sh引用文本:对所有内容使用单引号,然后如果需要单引号,请短暂退出单引号,使用一次\',然后重新输入单引号:echo 'He said, "Hello, don'\''t I know you?"'
标签: git