我想创建一个Git别名来执行多个命令,但我无法找到有关如何完成此操作的文档.
来自'man git-config'
Run Code Online (Sandbox Code Playgroud)alias.*
git(1)命令包装器的命令别名 - 例如在定义"alias.last = cat-file commit HEAD"之后,调用"git last"等同于"git cat-file commit HEAD".为避免使用脚本时出现混淆和麻烦,将忽略隐藏现有Git命令的别名.参数由空格分隔,支持通常的shell引用和转义.引号对和反斜杠可用于引用它们.
如果别名扩展以感叹号为前缀,则将其视为shell命令.例如,定义"alias.new =!gitk --all --not ORIG_HEAD",调用"git new"等同于运行shell命令"gitk --all --not ORIG_HEAD".请注意,shell命令将从存储库的顶级目录执行,该目录可能不一定是当前目录.通过从原始当前目录运行git rev-parse --show-prefix来设置GIT_PREFIX.见git-rev-parse(1).
seh*_*ehe 44
$ git config alias.q '!echo a; echo b'
$ git q
Run Code Online (Sandbox Code Playgroud)
输出:
a
b
Run Code Online (Sandbox Code Playgroud)
我认为这是(基本上)记录在man git-config
下面alias.*
请注意,与普通别名不同,git命令应该包含git.这是因为它被视为shell命令,而不是git命令(请参阅问题中引用的联机帮助页).例如链
git init
Run Code Online (Sandbox Code Playgroud)
和
git commit --allow-empty -m "empty initial commit"
Run Code Online (Sandbox Code Playgroud)
有必要创造
"!git init; git commit --allow-empty -m \"empty initial commit\""
Run Code Online (Sandbox Code Playgroud)
别名.
bri*_*ta_ 22
说命令是echo a
和echo b
(不是a
和b
),为别名添加多个命令q
:
从命令行:
git config alias.q '!echo a; echo b'
直接在配置文件中:
[alias]
q = "!echo a; echo b"
Run Code Online (Sandbox Code Playgroud)
对于更复杂的事情,定义一个shell函数并调用它:
'!f() { echo a ; echo b ; }; f'
要将参数传递给命令,请参阅:
带位置参数的
Git别名Git Alias - 多个命令和参数
根据乔纳森威克利的评论
归档时间: |
|
查看次数: |
13392 次 |
最近记录: |