当前分支上的Git别名

时间:2013-02-27 12:35:14

标签: git

我想改进我目前的别名,其中大多数都是在分支机构上工作。 有没有办法在git别名中引用当前分支,所以我不需要每次都传递它?

像这样:

git config alias.po "push origin"

是这样使用的:

git po foo_branch

我想运行git po并将当前分支作为参数。

4 个答案:

答案 0 :(得分:49)

[alias]
  po = "!git push --set-upstream origin \"$(git rev-parse --abbrev-ref HEAD)\""

答案 1 :(得分:3)

git symbolic-ref --short HEAD打印当前分支,因此您可以定义一个简单的shell别名:

alias gpo='git push origin "$(git symbolic-ref --short HEAD)"'

答案 2 :(得分:2)

此答案从Git 2.0开始有效,默认推送行为为simple

除非push.default设置设置为matching,否则git push不指定参数将始终推送当前分支,因此在这种情况下,您无需指定它。

答案 3 :(得分:0)

您的问题并非100%明确您需要这两个别名中的哪一个。

这会推送当前签出的分支:

git config alias.po !f() { export tmp_branch=`git branch | grep '* ' | tr -d '* '` && git push origin $tmp_branch; unset $tmp_branch; }; f

这将推送给定的分支名称(git po branchName):

git config alias.po !f() { git push origin $1; }; f