Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux '的别名;吉特地下仓库';在zsh中_Linux_Git_Terminal_Alias_Zsh - Fatal编程技术网

Linux '的别名;吉特地下仓库';在zsh中

Linux '的别名;吉特地下仓库';在zsh中,linux,git,terminal,alias,zsh,Linux,Git,Terminal,Alias,Zsh,我想制作一个别名,将git存放在zsh shell中。我要删除的存储编号应该作为参数传递给我的函数调用 我在下面试过,但失败了- function gd() { if [ -n "$1" ] then git stash drop "$1" else echo 'Enter stash no to drop' fi } 这给了我以下的错误- fatal: ambiguous argument '0': unknown revisi

我想制作一个
别名
,将git存放在zsh shell中。我要删除的存储编号应该作为参数传递给我的函数调用

我在下面试过,但失败了-

function gd() {
    if [ -n "$1" ]
    then
        git stash drop "$1"
    else
        echo 'Enter stash no to drop'
    fi
}
这给了我以下的错误-

fatal: ambiguous argument '0': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal:参数“0”不明确:未知修订或路径不在工作树中。
使用“---”将路径与修订分开,如下所示:
'吉特[…]-[…]'
似乎我没有正确地传递参数,它被视为字符串

我怎样才能做到这一点

试试看

git stash drop $1
但是,正如所评论的,zsh不会单独完成任何类型的转换

因此,请确保使用最新的Git:

  • 仅支持使用数字(然后解释为
    stash@{n}
    )的
    git stash
  • 有一个与git stash及其索引相关的bug
试试看

但是,正如所评论的,zsh不会单独完成任何类型的转换

因此,请确保使用最新的Git:

  • 仅支持使用数字(然后解释为
    stash@{n}
    )的
    git stash
  • 有一个与git stash及其索引相关的bug

@ShantanuTomar:您不需要定义任何别名,这在一开始就不是一件坏事,因为函数更灵活,但是如果您确实想要有一个
别名,那么定义它的命令将是

 alias gd='git stash drop'
除此之外,函数定义很好,尽管不需要引用变量。不过,这样做也无妨

错误消息表示您提供的存储不存在。使用

git stash list

获取可用存储的列表。

@shantautomar:您不定义任何别名,这在一开始就不是一件坏事,因为函数更灵活,但是如果您真的想拥有一个
别名,定义它的命令将是

 alias gd='git stash drop'
除此之外,函数定义很好,尽管不需要引用变量。不过,这样做也无妨

错误消息表示您提供的存储不存在。使用

git stash list

获取可用存储的列表。

$1
是一个字符串。如果分支名称包含shell可能在
git
看到它之前处理的字符,则必须使用引号;它不做任何类型的转换。@chepner:在这种情况下不做,因为我们有Zsh。即使$1包含通配符,如果没有引号,它们也不会被计算。这取决于您的shell设置。但是,无论哪种方式,不引用都不会使shell将其视为整数,因为即使
zsh
也没有整数数据类型:它都是字符串。
$1
无论哪种方式都是字符串。如果分支名称包含shell可能在
git
看到它之前处理的字符,则必须使用引号;它不做任何类型的转换。@chepner:在这种情况下不做,因为我们有Zsh。即使$1包含通配符,如果没有引号,它们也不会被计算。这取决于您的shell设置。不管怎样,不引用都不会使shell将其视为整数,因为即使
zsh
也没有整数数据类型:它都是字符串。您实际上是如何调用
gd
?您实际上是如何调用
gd