63

我在具有烦人的大牌的特性分支上工作,所以当我需要从本地特性分支向上推送到特性分支时,我经常会使用当前的分支名称,如下所示:

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]

让我相信别名没有正确解析管道。我还应该做些什么来实现所需的别名?

4

3 回答 3

101

我不认为你可以,但你可以在它前面加上一个!将命令视为新的 shell 命令

[alias]
    pushcur = ! git branch | grep '*' …
于 2013-10-22T18:20:26.700 回答
5

我通常会制作小git-脚本并将它们放在我的路径 ( ~/.local/bin) 中的目录中。查看git-extras以获得一堆好的示例。

于 2013-10-22T18:26:06.223 回答
1

一个简单的解决方法是将其添加为shell 别名

这是一个例子:

alias grf="git rebase -i $(git merge-base --fork-point master)"

(基于当前分支的 fork commit 和 master 交互)

对于 bash,将其添加到~/.bashrc,然后您可以简单地使用grf.

于 2018-08-16T11:56:52.153 回答