我想改进我目前的别名,其中大多数都是在分支机构上工作。 有没有办法在git别名中引用当前分支,所以我不需要每次都传递它?
像这样:git config alias.po "push origin"
是这样使用的:
git po foo_branch
我想运行git po
并将当前分支作为参数。
答案 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