假设我的.gitconfig中有一个这样的别名:
alias.showlog = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
现在我想要一个类似的别名:
alias.sl = showlog --abbrev-commit
当我尝试命令git sl
时,它说他不知道showlog
命令。
我知道仍然可以像其他别名一样复制相同的命令,但我只是想知道是否有可能在别名中引用另一个别名?
答案 0 :(得分:18)
不是这样,但你可以让别名通过shell运行命令,因此运行另一个git
实例来解析第二个别名:
alias.sl = !git showlog --abbrev-commit
答案 1 :(得分:6)
2018年第4季度更新:是的,Git 2.20可能是这样的:到目前为止,禁止将别名扩展为另一个别名,但是现在允许创建这样的别名。
请参见commit fef5f7f的commit 82f71d9,commit c6d75bc,Tim Schumacher (timschumi
)(2018年9月16日)。
(由Junio C Hamano -- gitster
--在commit 506ee60中合并,2018年10月16日)
put
:添加对别名别名的支持别名只能包含非别名git命令及其参数,不能包含其他用户定义的别名。通过处理第一个别名后中断循环,可以防止解析其他(嵌套)别名。
然后,Git失败,并显示一个命令未找到的错误。在处理第一个别名之后,不要破坏
alias
中的循环,从而解决嵌套别名。
而是继续循环,直到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
。