在Git中,可以从另一个别名引用别名

рüф*_*ффп 17 git alias git-config

假设我的.gitconfig中有一个这样的别名:

alias.showlog = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' 
Run Code Online (Sandbox Code Playgroud)

现在我想要一个类似的别名:

alias.sl = showlog --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

当我尝试命令时,git sl它说他不知道showlog命令.

我知道仍然可以像其他别名一样复制相同的命令,但我只是想知道是否有可能在别名中引用另一个别名?

tor*_*rek 22

不是那样,但你可以让别名通过shell运行命令,因此运行另一个实例git来解析第二个别名:

alias.sl = !git showlog --abbrev-commit
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 9

2018年第4季度更新:是的,Git 2.20有可能:到目前为止,禁止将别名扩展为另一个别名,但是现在允许创建这样的别名。

参见Tim Schumacher(提交的commit fef5f7fcommit 82f71d9commit c6d75bc(2018年9月16日(由Junio C Hamano合并--mit 506ee60中,2018年10月16日)timschumi
gitster

alias:添加对别名别名的支持

别名只能包含非别名git命令及其参数,不能包含其他用户定义的别名。通过在处理第一个别名之后中断循环,可以防止解析其他(嵌套的)别名。
然后,Git失败,并显示一个命令未找到的错误。

通过在run_argv()处理第一个别名之后不中断循环来允许解决嵌套别名。
而是继续循环直到handle_alias()失败,这意味着没有其他别名可以处理。通过将替换的命令存储在其中cmd_list并检查命令先前是否被替换来防止循环别名。

所以...现在将有可能:

git config alias.nested-internal-1 nested-internal-2
git config alias.nested-internal-2 status
git nested-internal-1
Run Code Online (Sandbox Code Playgroud)

那将是一个git status