如何为使用参数的两个 Git 命令创建别名?

JJD*_*JJD 3 shell bash zsh git alias

我经常不得不删除本地和远程Git分支。因此,我运行以下命令:

$ git branch -d feature-branch
$ git push --delete origin feature-branch
Run Code Online (Sandbox Code Playgroud)

由于我主要是连续执行这两个命令,因此我想为它们创建一个别名。这是我的方法:

alias gpdo='git branch -d $1 && git push --delete origin $1
Run Code Online (Sandbox Code Playgroud)

但是,这失败并出现以下错误:

致命:需要分支名称

Mic*_*ant 8

当您希望别名具有参数时,您可以使用函数,例如

$ gpdo () {
    git branch -d "$1" && git push --delete origin "$1"
}
Run Code Online (Sandbox Code Playgroud)

然后你可以做 gpdo branch_name

这对于多个命令也很有用,尽管如果没有参数且没有条件逻辑、循环等,它们也可以使用带有多个&&s的别名来完成。但是当需要参数时,我切换到使用函数

Git 本身也允许别名,例如见:

您还可以找到带有 ; 的 Git 别名多命令。和 &&有帮助

  • @JJD:鉴于这个问题,这个解决方案显然是正确的。如果您需要帮助,您需要提供比“不起作用”更好的诊断。例如,您确定您提供的命令是正确的吗?我已更正您的问题与此答案之间的细微差异;您可能想在我编辑后重试解决方案。 (2认同)