首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git:可能引用.gitconfig中的.gitconfig变量吗?

Git:可能引用.gitconfig中的.gitconfig变量吗?
EN

Stack Overflow用户
提问于 2020-06-07 19:53:33
回答 1查看 74关注 0票数 2

是否可以在.gitconfig的另一个定义中使用来自.gitconfig的变量?

在巴什,我可以:

代码语言:javascript
复制
delimiter="^"
log_res="log --graph --pretty=format:'$delimiter%cr$delimiter%cs$delimiter%h'"

结果是什么

代码语言:javascript
复制
log --graph --pretty=format:'^%cr^%cs^%h'

在.gitconfig中同样有可能实现结果别名吗?

代码语言:javascript
复制
[alias]
      result    = log --graph --pretty=format:'^%cr^%cs^%h'
      delimiter = "^"
      log-res   = ??? log --graph --pretty=format:'DELIMITER%crDELIMITER%csDELIMITER%h' ???

我如何写“log”,以取代分隔符的更改?这件事做得好吗?

我知道,如果您定义了很多日志命令,我可以执行这样的操作:

代码语言:javascript
复制
[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 resultgit log-res一样,但是读起来很可怕,不是吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-07 21:36:33

不,不可能在.gitconfig中引用其他设置。一般来说,由于继承规则,这是很棘手的:如果值在repo本地配置中更改,全局配置中的别名将使用全局配置中的版本还是回购本地配置中的版本?

正如您已经注意到的,您确实可以使用sh来完成这个任务,但是它可以稍微简单一些:

代码语言:javascript
复制
log-res = "!f() { d=\"$(git config alias.delimiter)\"; git log --graph --pretty=\"format:$d%cr$d%cs$d%h\" \"$@\"; };f"

您可能希望将该值存储在alias部分之外的某个地方,这样您的shell补全就不会尝试完成git delimiter,这将无法工作。

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

https://stackoverflow.com/questions/62250827

复制
相关文章

相似问题

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