我想解析git config --list
。
首先我想我可以解析这个在dot之间分隔的对象。 E.g。
color.ui=auto
branch.master.remote=upstream
branch.master.merge=refs/heads/master
# => {
core: { ui: auto },
branch: { master: { remote: upstream, merge: refs/heads/master }}
}
但有时名字有点:(
我想在下面做:
url.git@gist.github.com:.pushinsteadof=https://gist.github.com/
branch.chore/foo.bar.baz.remote=upstream
branch.chore/foo.bar.baz.merge=refs/heads/master
# => {
url: { git@gist.github.com: { pushinsteadof: https://gist.github.com/ } },
branch: { chore/foo.bar.baz: { remote: upstream, merge: refs/heads/master } }
}
如何实现这一目标? 我应该重新实现git-config https://git-scm.com/docs/git-config#FILES并包含部分吗? 我想更改一个部分分隔符。
答案 0 :(得分:1)
根据我从{{3}}看到的内容,键的第一个和最后一个元素中没有点。
所以在int
中,您可以搜索第一个'。'最后'。' (给你branch.chore/foo.bar.baz.remote
和branch
)。中间的一切都是一个关键的名字。