Abh*_*mal 3 command-line alias git
大多数时候,我使用这些git命令:
git add src/ package.jsongit 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命令(add、commit和push)。
我怎样才能做到这一点?
笔记
我知道我可以为任何命令(在本例中git commit为 )创建别名,如下所示:
alias gc='git commit -m '
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您需要创建一个函数。将以下代码片段添加到您的~/.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)