如何创建Git命令别名?

8
我想创建一个别名,例如以下内容: gc 这是一条测试消息 转换为 git commit -m“这是一条测试消息”
我该如何做? 我希望将其添加到我的bashrc中。
4个回答

13

我在我的.bashrc文件中有以下这些别名:

alias ga='git add'
alias gp='git push'
alias gl='git log'
alias gs='git status'
alias gd='git diff'
alias gdc='git diff --cached'
alias gm='git commit -m'
alias gma='git commit -am'
alias gb='git branch'
alias gc='git checkout'
alias gra='git remote add'
alias grr='git remote rm'
alias gpu='git pull'
alias gcl='git clone'

我通常使用gm "msg"提交


很好,感谢分享。我喜欢在当前目录上获取git状态,即使有其他文件夹在项目中,我也不会在其中工作,所以添加了这个:alias gs='git status .',然后由于它是我的#1 git命令,这甚至更快alias g=gs - Gene Bo

10

bash中alias定义不接受参数。

尝试在您的.bashrc中使用bash函数:

function gc () { 
    git commit -m "$*" 
}

我喜欢并尝试了这个,但在我的 bash 环境中无法正常工作。你知道我为什么会收到这个错误信息吗?错误信息为:error: path spec '<我尝试输入的提交字符串>' did not match any file(s) known to git. 我是这样运行它的:*$ gc test commit message here*,我还尝试过创建别名来执行该函数。 - Gene Bo
我的猜测是,最终调用中可能存在您不打算添加的闭合引号。您可以尝试在函数中实际行之前添加一行 echo "git commit -m "$*" 以查看生成了什么内容。 - John Weldon
谢谢回复。我用echo尝试了一下,然后发现它起作用了...我之前一定漏了什么,但现在它可以正常工作了。顺便说一下,使用您的echo,我认为您错过了一个引号,而且我不确定它们是否嵌套,所以我像这样做:echo "git commit -m \"$*\" " - Gene Bo

8

这不是别名,但可以试试

function gc() {
  git commit -m "$*"
}

1

这应该可以工作:

alias ci = "!f() { git commit -m \"$*\"; }; f"

很遗憾,gc已经是一个子命令,无法设置别名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接