git 命令的别名

Abh*_*mal 3 command-line alias git

大多数时候,我使用这些git命令:

  • git add src/ package.json
  • git commit -m "custom message"
  • git push origin "name_of_the_branch"

所以我想创建一个别名命令,如下所示:

git_alias src/ package.json && "custom message" && name_of_the_branch    
Run Code Online (Sandbox Code Playgroud)

通过运行上述别名,它应该运行所有三个git命令(addcommitpush)。

我怎样才能做到这一点?

笔记

我知道我可以为任何命令(在本例中git commit为 )创建别名,如下所示:

alias gc='git commit -m '
Run Code Online (Sandbox Code Playgroud)

Art*_*ild 7

在这种情况下,您需要创建一个函数。将以下代码片段添加到您的~/.bash_aliases

# Function for custom Git command (will only work for single files)
_git_commit_push() {
    git add "$1" && \
    git commit -m "$2" && \
    git push origin "$3"
}

alias gc='_git_commit_push'
Run Code Online (Sandbox Code Playgroud)

现在,当您重新加载 Bash 配置时,应该定义此函数和别名。

注意三个参数:$1$2$3。这些是您的函数的命令行参数。另请注意,如果运行第一个命令,则表达式&& \ (逻辑 AND 加上转义换行符)将仅运行后续命令。

现在,您可以使用gc与三个字符串(包名称、自定义消息和分支名称)相对应的三个参数来运行您的函数(或别名)。确保所有包含空格的参数都用引号引起来,如下所示:

gc "src/ package.json any_other_file" "This is my commit message" main
Run Code Online (Sandbox Code Playgroud)

您还可以添加一些健全性检查,例如您要添加的文件是否存在:(
现在修改为容纳多个文件作为参数$1

gc "src/ package.json any_other_file" "This is my commit message" main
Run Code Online (Sandbox Code Playgroud)