如何将可选参数转发给Git别名

时间:2013-04-24 09:00:05

标签: git

我经常使用git commit --fixup=<commit>,并希望将其缩短为git fixup <commit>。有时我想添加其他标志(例如-a)。因此我设置了一个别名,它支持一个额外的标志($2):

[alias]
  fixup = !sh -c 'git commit -m\"fixup! $1\" \"$2\"' -

这可以推广到支持任意数量的标志吗?

1 个答案:

答案 0 :(得分:1)

我相信这样的事情对你有用:

[alias]
  fixup = "!_() { local commit_id=\"$1\"; shift; git commit -m \"fixup! $commit_id\" \"$@\"; }; _"

它使用shell函数和移位运算符来剥离第一个参数。然后$@可用于剩余的参数。