- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以,我一直认为使用 core.autocrlf=true
Git 在将文件 check out 到工作目录。
来自Git book :
If you’re on a Windows machine, set it to true – this converts LF endings into CRLF when you check out code
但是,当 checkout 一个包含混合行结尾且 core.autocrlf
设置为 true
的文件时,我的 Git 版本会按原样 checkout 文件。
我找到了一个非常方便的 GitHub 存储库来测试此行为 - https://github.com/YueLinHo/TestAutoCrlf
测试结果:
LF
结尾的文件 (LF.txt)
autocrlf=false
:按原样 check out (所有行尾都是 LF
)autocrlf=true
: checkout 时所有行尾都更改为 CRLF
到目前为止,一切都如我所料。现在对于具有混合行结尾的文件:
autocrlf=false
:按原样检查(LF
和 CRLF
的混合)autocrlf=true
:按原样 check out (LF
和 CRLF
的混合)为什么会这样?我还没有看到任何有关 autocrlf=true
不涉及带有混合行尾的文件的信息。
我的 Git 设置有问题吗?在使用 autocrlf=true
检查后,我在存储库文件夹中检查了运行 git config --get core.autocrlf
的 core.autocrlf
设置全局 .gitconfig,命令返回 true。没有 .gitattributes 文件来覆盖设置。
所有测试均在 Git 版本 1.9.5.msysgit.0
上进行。
编辑在最新的 msysgit 版本 1.9.5.msysgit.1
上有相同的行为。
我最初的问题是,我以某种方式设法提交了一个只有 LF
结尾的混合行结尾文件,同时将 core.autocrlf
设置为 true
,表示文件按原样 checkout ,但提交时 CRLF
更改为 LF
。我目前正在另一台机器上工作,无法在我的 msysgit 版本上重现此行为。
最佳答案
我重新发布一个被其所有者删除的答案,因为我认为它给出了最好的解释。我不知道作者为什么删除它,我认为它是正确的,我已投票取消删除。
显然,这种行为在 Git 中是硬编码的,并且不依赖于 core.safecrlf(我已经对此进行了测试,即使我设置了 git config core.safecrlf false
,混合文件也不会受到影响。
原回答如下:
Autocrlf 不会转换混合行结尾,正如 git 的源代码所说:
https://github.com/git/git/commit/a0ad53c18100226cb1a138cb9b3bc3615170be8f
注意这里的注释:
/* No "naked" LF? Nothing to convert, regardless. */
和
/* If we have any CR or CRLF line endings, we do not touch it */
/* This is the new safer autocrlf-handling */
混合行尾转换是不可逆的,完成后 Git 崩溃。
因此,如果您想自动转换文件的行结尾,设置 .gitattributes 可能是个好主意。处理行尾的文件。如:
LF.txt eol=lf
CRLF.txt eol=crlf
关于带有 autocrlf=true 的 Git 按原样 check out 具有混合行结尾的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793339/
这个问题在这里已经有了答案: Why in Python does "0, 0 == (0, 0)" equal "(0, False)"? (7 个回答) 去年关闭。 代码片段 1: a = Tru
Integer i = 127; Integer j = 127; System.out.println(i == j); System.out.println(i.equals(j)); Integ
我试图用 Python 进行类似下面的代码的比较,但对产生的输出感到困惑。 谁能解释为什么输出是这样的? >>> True, True == True, True (True, True, True)
我们的下拉值是动态的 010100。 你能帮我将这些值转换为 true、false 吗? Offer的值是10100,Reject的值是10111。所以这些需要转换成 10100 = true,fal
我正在测试,如果用户在页面顶部显示一种货币“EUR”和另一种货币“GBP”,那么我期望包含文本“EUR”和页面下方还存在另一个包含文本“GBP”的链接。它包含在一个名为 "nav-tabs au-ta
如何检查数组的所有元素是真值还是假值。 因为以下内容似乎没有做到这一点:_.all([true, true, true], true); 它返回:false? 最佳答案 您应该重新阅读_.every(
C#:我有一个如下所示的字符串变量: string a = "(true and true) or (true or false)"; 这可以是任何东西,它可以变得更复杂,比如: string b
ruby : true == true == true syntax error, unexpected tEQ 对比JavaScript: true == true == true // => tr
这个问题已经有答案了: Equality of truthy and falsy values (JavaScript) (3 个回答) Which equals operator (== vs ==
为什么 R 中的 TRUE == "TRUE" 是 TRUE? R 中是否有与 === 等效的内容? 更新: 这些都返回FALSE: TRUE == "True" TRUE == "true" TRU
简单的查询,可能不可能,但我知道那里有一些聪明的人:) 给定一个 bool 参数,我希望定义我的 where 子句来限制特定列的输出 - 或不执行任何操作。 因此,给定参数@bit = 1,结果将是:
编写 Excel 公式时,将值设置为 true、“true”还是 true() 是否有区别? 换句话来说,以下哪一个是最好的?还是要看具体情况? if (A1 = 1, true, false) if
如果我们评估这个:TRUE AND TRUE,为什么会这样? 'yes' : 'no' 等于 TRUE 但不等于 yes 何时评估:(TRUE AND TRUE) ? 'yes' : 'no' 等于
这个问题在这里已经有了答案: Behaviour of and operator in javascript [duplicate] (1 个回答) 关闭 7 年前。 如题所说,我不太明白为什么(t
我有一个包含 FromDate 、 ToDate 、 VendorName 和 GoodsName 的表单,一旦一切为真,我需要显示结果 示例: FromDate="11/20/2019"、ToDat
我最近参加了 Java 的入门测试,这个问题让我很困惑。完整的问题是: boolean b1 = true; boolean b2 = false; if (b2 != b1 != b2) S
我有一个模型,我有: ipv4_address = models.IPAddressField(verbose_name=_('ipv4 address'), blank=True, null=Tru
False in [True,True] False in pd.Series([True,True]) 第一行代码返回False第二行代码返回 True! 我想我一定是做错了什么或者遗漏了什么。当我
我可以在 Coq 中证明以下内容吗? Lemma bool_uip (H1 : true = true): H1 = eq_refl true. 即true = true 的所有证明都相同吗? 例如
如果我的理解是正确的,他们做的事情完全一样。为什么有人会使用“for”变体?仅仅是味道吗? 编辑:我想我也在考虑 for (;;)。 最佳答案 for (;;) 通常用于防止编译器警告: while(
我是一名优秀的程序员,十分优秀!