我在功能分支上工作,这些功能分支有很烦人的名字,所以当我需要从我的本地功能分支推送到功能分支时,我常常会抓住当前的分支名称,如下所示:
git branch | grep '*' | sed 's/* //' | xargs git push origin
这很好用。我想把它变成别名,所以我在〜/ .gitconfig中执行了这个:
[alias]
pushcur = branch | grep '*' | sed 's/* //' | xargs git push origin
现在,当我运行git pushcur
时,我收到以下错误:
usage: git branch [options] [-r | -a] [--merged | --no-merged]
让我相信别名没有正确解析管道。我还有别的办法来实现所需的别名吗?
答案 0 :(得分:60)
我认为你不能,但你可以在它前面添加一个!
来将命令视为一个新的shell命令
[alias]
pushcur = ! git branch | grep '*' …
答案 1 :(得分:4)
我通常制作小git-
个脚本并将它们放在我的路径(~/.local/bin
)中的目录中。查看git-extras了解一堆很好的例子。
答案 2 :(得分:0)
一个简单的解决方法是将其添加为 shell别名。
这里是一个例子:
alias grf="git rebase -i $(git merge-base --fork-point master)"
(以当前分支的fork提交为基础,并与master进行交互)
对于bash,请将其添加到〜/ .bashrc中,然后只需使用grf
。