MJD*_*MJD 7 git configuration-files
如果我这样做git config foo.bar baz,这会添加一个foo部分.git/config:
...
[foo]
bar = baz
...
Run Code Online (Sandbox Code Playgroud)
我可以再次删除该设置git config --unset foo.bar,但该部分保留在文件中,其中没有任何内容:
...
[foo]
...
Run Code Online (Sandbox Code Playgroud)
如果我添加其他foo设置git config foo.bar baz,git-config则不将其添加到空白foo部分; 它开始一个新的:
...
[foo]
[foo]
bar = baz
...
Run Code Online (Sandbox Code Playgroud)
我的问题是:
从 .git/config 中删除设置时如何避免出现空部分?
这应该在 Gti 2.18(2018 年第 2 季度)中修复:
“ git config --unset a.b”,当“ a.b”是空部分“”中的最后一个变量时a,会留下一个空部分“a”,更糟糕的是,后续的“ git config a.c value”没有重用那个空壳,而是创建了一个新壳。
这些已(部分)纠正。
请参阅提交 c71d8bb、提交 22aedfc、提交 6ae996f、提交 5221c31、提交 668b9ad、提交 Fee8572、提交 8032cc4 、提交 b73bdc3 、提交422e8ef(2018 年 4 月 9 日)和提交 dde154b、提交85bf5d6、提交 46 fc89c,提交 e931395 ,提交efbaca1,提交83b7fd8(2018 年 4 月 3 日)作者:Johannes Schindelin ( )。(由Junio C Hamano 合并 -- --在提交 4f4d0b4中,2018 年 5 月 8 日)dscho
gitster
git config --unset:删除空部分(在常见情况下)
删除最后一个条目后不删除节标题的原始原因是这样的:用户可以添加有关该节或其中的条目的评论,如果那里还有其他评论,我们不知道是否应该删除他们。
特别是,提出了一个如下所示的编造示例(并已添加到 t1300 中):
# some generic comment on the configuration file itself
# a comment specific to this "section" section.
[section]
# some intervening lines
# that should also be dropped
key = value
# please be careful when you update the above variable
Run Code Online (Sandbox Code Playgroud)
在这种情况下,理想的做法
git config --unset section.key是只保留第一行,因为所有其他注释现在都已过时。然而,这是不可行的,除非向 Git 添加完整的自然语言处理模块,这看起来不仅需要大量工作,而且是一个完全不合理的功能(对大多数用户来说几乎没有什么好处)。
现在,这个问题的真正问题是:大多数用户根本不编辑他们的配置文件!在他们的用例中,配置看起来像这样:
[section]
key = value
Run Code Online (Sandbox Code Playgroud)
...如果条目被删除,会发生什么是完全明显的:整个部分应该消失。
| 归档时间: |
|
| 查看次数: |
500 次 |
| 最近记录: |