首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将参数传递给Git别名命令

将参数传递给Git别名命令
EN

Stack Overflow用户
提问于 2011-08-10 11:20:32
回答 3查看 23.5K关注 0票数 76

我可以将参数传递给Git命令的别名吗?

我在Git配置中有一些别名,比如:

代码语言:javascript
复制
rb1 = rebase -i HEAD~1
rb2 = rebase -i HEAD~2
rb3 = rebase -i HEAD~3
rb4 = rebase -i HEAD~4
....

是否可以创建一个rb别名,以便git rb <x>可用于任何<x>

我试过这个别名:

代码语言:javascript
复制
rb = rebase -i HEAD~

但是举个例子,git rb 8不能工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-10 11:54:26

如果你考虑Git Faq section "Git Aliases with argument",你可以这样做,但是通过一个shell调用git:

代码语言:javascript
复制
[alias]
        rb = "!sh -c \"git rebase -i HEAD~$1\" -"

我还没有测试过它,但是如果你可以传递一个参数,这将是一种方法。

一种类似的解决方案是使用shell function

代码语言:javascript
复制
[alias]
        rb = "!f() { git rebase -i HEAD~$1; }; f"
票数 100
EN

Stack Overflow用户

发布于 2018-07-07 23:09:00

我写了这个函数"grb“来在苹果电脑上执行Git交互式rebase,所以我可以说grb 5来显示我最近的5次提交:

代码语言:javascript
复制
function grb {
  git rebase -i HEAD~$1
}

这页最上面的答案对我不起作用。要查看我的.zprofile和我在Mac上使用的所有其他Git别名:

https://github.com/rayning0/zsh_profile/blob/master/.zprofile#L157

票数 1
EN

Stack Overflow用户

发布于 2019-08-17 07:39:01

@Droogans在接受答案的comment中指出,至少在macOS上(我想这同样适用于任何类unix的操作系统,甚至可能是windows),你可以只使用$1作为代表别名中参数的占位符值。因此,要设置别名以使git rb 8成为git rebase -i HEAD~8

代码语言:javascript
复制
    rb = "!git rebase -i HEAD~$1;"

您还可以在别名中多次使用它,因此,例如,如果您想要一个将git f my-branch转换为git fetch origin my-branch:my-branch的别名,您可以这样做:

代码语言:javascript
复制
    f = "!git fetch origin $1:$1"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7005513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档