首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个命令的Git别名语法

使用多个命令的Git别名语法
EN

Stack Overflow用户
提问于 2013-09-17 22:06:31
回答 4查看 17.2K关注 0票数 40

我想要创建一个Git别名来执行多个命令,但是我找不到关于如何做到这一点的文档。

  1. 有多个命令的Git别名的语法是什么?
  2. 这个文件在哪里?

来自“man config”的

alias.\* 命令别名用于git(1)命令包装器--例如,在定义"alias.last =cat提交头“之后,调用"git”等效于"git file提交头“。为了避免与脚本使用的混淆和麻烦,会忽略隐藏现有Git命令的别名。参数被空格分隔,支持通常的shell引用和转义。引号对和反斜杠可以用来引用它们。如果别名展开以感叹号作为前缀,则它将被视为shell命令。例如,定义"alias.new = !gitk --所有--不是ORIG_HEAD",调用"git“相当于运行shell命令"gitk -不是ORIG_HEAD”。注意,shell命令将从存储库的顶层目录执行,该目录可能不一定是当前目录。通过从原始当前目录运行git解析-显示前缀,将GIT_PREFIX设置为返回。参见git-rev-parse(1)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-17 22:14:00

代码语言:javascript
复制
$ git config alias.q '!echo a; echo b'

$ git q

输出:

代码语言:javascript
复制
a
b

我认为这是(粗略地)记录在man git-config下的alias.*中。

注意,与普通别名不同,git命令应该包括git。造成这种情况的原因是,它被视为shell命令,而不是git命令(请参阅问题中引用的手册)。例如,要链

代码语言:javascript
复制
git init

代码语言:javascript
复制
git commit --allow-empty -m "empty initial commit"

有必要创造

代码语言:javascript
复制
"!git init; git commit --allow-empty -m \"empty initial commit\""

化名。

票数 47
EN

Stack Overflow用户

发布于 2014-02-07 14:57:56

假设命令是echo aecho b (不是ab),可以为别名q添加多个命令

从命令行:

git config alias.q '!echo a; echo b'

直接在配置文件中:

代码语言:javascript
复制
[alias]
    q = "!echo a; echo b"

对于更复杂的事情,定义一个shell函数并调用它:

'!f() { echo a ; echo b ; }; f'

要将参数传递给命令,请参见:

Git alias with positional parameters

Git Alias - Multiple Commands and Parameters

基于Jonathan Wakely的评论

票数 25
EN

Stack Overflow用户

发布于 2017-02-09 10:06:16

补充答案:我经常需要更复杂的命令来决定通过位置参数做什么,并在参数上分支,或者通过参数或输入文件循环。

这样的命令对于单行来说太复杂了,很难在一行上阅读和编辑。但我找到了一种非常简单的方法,可以从文件中执行非常复杂的命令:

假设存储库中有一个名为alias/cmd的文件:

代码语言:javascript
复制
!function f {
    if [ -z "$1" ]
    then echo "Please give me some argument!" 1>&2
        exit -1
    fi
    echo "Hello $1"
}; f

然后你可以简单地说

代码语言:javascript
复制
git config alias.cmd "`cat alias/cmd`"

从文件中定义别名cmd,并且

代码语言:javascript
复制
git config --get alias.cmd > alias/cmd

要将定义的别名写入文件,请执行以下操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18860696

复制
相关文章

相似问题

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