如何别名git flow hotfix finish [current_hotfix_branch]

时间:2012-10-30 08:01:21

标签: git alias git-flow

git flow 一次只允许一个修补程序分支。所以不要打字:

git flow hotfix finish hotfix_branch

我想创建一个使用唯一现有修补程序分支名称的别名。类似下面的伪代码:

[alias]
  fix-done = flow hotfix finish `git_fetch_branch_beginning_with_hotfix`

有人可以帮忙吗?感谢。

更新:我正在使用zsh。

3 个答案:

答案 0 :(得分:1)

此函数或多或少地从git-flow的源代码中提取:

finish_current_hotfix_branch ()
{
  local hotfix_prefix=$(git config --get gitflow.prefix.hotfix)
  local hotfix_branches=$(echo "$(git branch --no-color | sed 's/^[* ] //')" | grep "^$hotfix_prefix")
  local first_branch=$(echo ${hotfix_branches} | head -n1)
  first_branch=${first_branch#$hotfix_prefix}
  git flow hotfix finish "$first_branch"
}

<强>更新

您似乎必须将整个函数放在别名中。不好,但有效:

[alias]
  fix-done ="!_() { p=$(git config --get gitflow.prefix.hotfix); b=$(echo \"$(git branch --no-color | sed 's/^[* ] //')\" | grep \"^$p\"); f=$(echo ${b} | head -n1); f=${f#$p}; git flow hotfix finish \"$f\"; }; _"

答案 1 :(得分:1)

这是另一种执行git flow hotfix完成别名的方法:

hf = "!_() { b=$(git rev-parse --abbrev-ref HEAD) && git co master && git pl && git co develop && git pl && git co $b && git rebase master && h=$(echo $b | sed 's/hotfix\\///g') && git flow hotfix finish -m 'new_tag' $h && git co master && git ps && git co develop && git ps && git ps --tags && git poo $b && git br -D $b;  }; _"

答案 2 :(得分:1)

如果你运行git flow AVH Edition,你可以做到

abs(0.1+0.2 - 0.3) < ε

当你在分支机构时,你想完成。这适用于修补程序,发行版,功能和错误修复。

检查你是否运行git flow AVH Edition

$ git flow finish