tho*_*hor 4 git text plaintext
是否可以将 git 使用的换行符更改为默认值以外的换行符\n(例如句点.或句点加空格)?
我这样问是因为这将使使用 git 管理文本文件(例如文档和 Markdown 文件)变得更容易。我看过一些文章建议人们将每个句子放在自己的行中,以便 git 将其视为一个单元(而不是较长段落的一部分),这很尴尬。因此这里的问题。
我做了一些互联网搜索但无济于事。
我赞成你的问题,因为我喜欢这个想法。不幸的是答案是:不,Git 不支持这一点。
\n\n如git config文档中所述,core.eol和 的lf有效值为crlf:
\n\n\n设置在标记为文本的文件的工作目录中使用的行结束类型(通过设置文本属性,或者通过设置 text=auto 和 Git 自动将内容检测为文本)。替代方案有 lf、crlf 和 native,它们使用 platform\xe2\x80\x99s 本机行结尾。默认值是本机。有关行尾转换的更多信息,请参阅 gitattributes[5]。请注意,如果 core.autocrlf 设置为 true 或输入,则忽略此值。
\n
其他相关的 git 配置设置是core.safecrlf和core.autocrlf。gitattributes 文档也说了同样的事情。
lf和cf是具有非常特定含义的控制字符。常规字符(例如句号).根据上下文具有多种含义。在许多语言中,它标志着句子的结束。但这在数字上意味着不同的东西。...常用于省略号,不是三句结尾。
因此,支持此类选项的 git 会导致存储在 git 存储库中的许多文本文件变得混乱。
\n\nhook自动插入。lf这将是一个非常简单的正则表达式来做到这一点。
\n\n通过尝试这种方法,您将发现以下两件事之一:
\n\n(a) 酷,这对我有用!我的文件仍然是普通的文本文件,我的存储库仍然是正常的,因此其他人可以使用它。
(b) 哇,现在我知道他们为什么不支持这个了。多么混乱的#$*&#@CRLF!
之所以有“文章建议人们将每个句子放在自己的行中”是因为git diff用于仅支持行粒度差异。行差异对于代码很有用,但对于散文却很糟糕。插入句子甚至编辑一个单词都会导致整个段落被标记为已更改,除非该段落被分成几行。
但现在如果您使用,或选项,则git diff支持单词粒度。--word-diff[=<mode>]--word-diff-regex=<regex>--color-words[=<regex>]
输入git help diff或查看git-diff 文档 以获取更多信息。
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |