从 .git/config 删除设置时如何避免出现空白部分?
这应该通过 Gti 2.18(2018 年第二季度)修复:
“ git config --unset a.b
”,当“ a.b
”是原本为空的部分“”中的最后一个变量时a
,留下了一个空的部分“a”,更糟糕的是,后续的“ git config a.c value
”没有重用那个空壳,而是创建了一个新的。
这些已(部分)更正。
参见提交C71D8BB,提交22AEDFC,提交6AE996F ,提交5221C31,提交668B9AD ,提交费用8572 ,提交8032cc4,提交B73BDC3,提交B73BDC3,提交422E8EF(2018年4月9日)和提交DDE154B,提交85BF5D6,commit compt 83b7fd8(2018 年 4 月 3 日),作者Johannes Schindelin()。(由Junio C Hamano 合并 -- --在提交 4f4d0b4dscho
gitster
, 2018 年 5 月 8 日)
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
在这种情况下,理想的git config --unset section.key
做法是只留下第一行,因为所有其他注释现在都已过时。
但是,这是不可行的,没有在 Git 中添加一个完整的自然语言处理模块,这看起来不仅工作量很大,而且是一个完全不合理的功能(对大多数用户来说几乎没有什么好处)。
现在,关于这个问题的真正关键是:大多数用户根本不编辑他们的配置文件!在他们的用例中,配置看起来像这样:
[section]
key = value
...如果删除该条目会发生什么,这是完全显而易见的:整个部分应该消失。