是否可以在.gitconfig的另一个定义中使用来自.gitconfig的变量?
在巴什,我可以:
delimiter="^"
log_res="log --graph --pretty=format:'$delimiter%cr$delimiter%cs$delimiter%h'"结果是什么
log --graph --pretty=format:'^%cr^%cs^%h'在.gitconfig中同样有可能实现结果别名吗?
[alias]
result = log --graph --pretty=format:'^%cr^%cs^%h'
delimiter = "^"
log-res = ??? log --graph --pretty=format:'DELIMITER%crDELIMITER%csDELIMITER%h' ???我如何写“log”,以取代分隔符的更改?这件事做得好吗?
我知道,如果您定义了很多日志命令,我可以执行这样的操作:
[alias]
result = log --graph --pretty=format:'^%cr^%cs^%h'
delimiter = "^"
log-res = !bash -c '"git $(echo \"log --decorate=short --graph --pretty=format:'$(git config alias.delimiter)%cr$(git config alias.delimiter)%cs$(git config alias.delimiter)%h'\")"'git result和git log-res一样,但是读起来很可怕,不是吗?
发布于 2020-06-07 21:36:33
不,不可能在.gitconfig中引用其他设置。一般来说,由于继承规则,这是很棘手的:如果值在repo本地配置中更改,全局配置中的别名将使用全局配置中的版本还是回购本地配置中的版本?
正如您已经注意到的,您确实可以使用sh来完成这个任务,但是它可以稍微简单一些:
log-res = "!f() { d=\"$(git config alias.delimiter)\"; git log --graph --pretty=\"format:$d%cr$d%cs$d%h\" \"$@\"; };f"您可能希望将该值存储在alias部分之外的某个地方,这样您的shell补全就不会尝试完成git delimiter,这将无法工作。
https://stackoverflow.com/questions/62250827
复制相似问题