Git псевдоним на текущей ветке

Я хотел бы улучшить свои текущие псевдонимы, большинство из них работают над веткой. Есть ли способ сослаться на текущую ветку в псевдониме git, поэтому мне не нужно каждый раз передавать ее?

как этот:

git config alias.po "push origin"

это использовать это так:

git po foo_branch

Я хотел бы просто бежать git po и это взять текущую ветку в качестве параметра.

4 ответа

Решение

Этот ответ будет действительным, начиная с Git 2.0, где поведение push по умолчанию будетsimple

Если не push.default настройка установлена ​​на matching, git push без указания аргумента всегда будет выдвигать текущую ветвь, поэтому в этом случае вам не нужно указывать ее.

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

git symbolic-ref --short HEAD печатает текущую ветку, так что вы можете определить простой псевдоним оболочки:

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

Из вашего вопроса не на 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
Другие вопросы по тегам