Windows上的Git 1.6.4测试版(msysgit)-Unix或DOS行终止
我正在Win Vista开发VPC上安装msysgit 1.6.4测试版。安装屏幕正在请求我是使用Unix行终止还是使用DOS行终止。通常,我会选择DOS,但是设置文本表明DOS终止可能意味着文件不能与Git的所有命令行工具一起工作。Unix行终止状态为“…大多数[Windows]应用程序都可以处理此…”Windows上的Git 1.6.4测试版(msysgit)-Unix或DOS行终止,git,msysgit,Git,Msysgit,我正在Win Vista开发VPC上安装msysgit 1.6.4测试版。安装屏幕正在请求我是使用Unix行终止还是使用DOS行终止。通常,我会选择DOS,但是设置文本表明DOS终止可能意味着文件不能与Git的所有命令行工具一起工作。Unix行终止状态为“…大多数[Windows]应用程序都可以处理此…” 有人知道我应该选择哪个选项通过shell在VS 2008工作中使用Git吗?Visual Studio 2008可以毫无问题地处理Unix线路终止。但是,它将尝试检测具有不一致行结束符的文本文
有人知道我应该选择哪个选项通过shell在VS 2008工作中使用Git吗?Visual Studio 2008可以毫无问题地处理Unix线路终止。但是,它将尝试检测具有不一致行结束符的文本文件,以尝试修复这些问题。另一方面,记事本无法正确显示Unix文本文件。msysgit安装过程中的设置实际上用于修复
core.autocrlf
的值
如果为true,则在从文件系统读取时,使文本文件中行末的git将CRLF
转换为LF
,并在写入文件系统时反向转换
变量可以设置为“input
”,在这种情况下,转换仅在从文件系统读取时发生,但文件在行尾用LF
写出
目前,考虑“文本”的路径(即服从专制机制)纯粹是基于内容来决定的。 我坚持不尝试自动转换任何东西,副作用太重要了(就潜在的合并冲突而言,尤其是在不同环境下的分布式开发上)
如果您的工具可以处理Unix样式的行终止,那么应该将它们设置为生成Unix行,然后Windows(VS2008,Notepad++,…)和Unix都可以读取这些行,并且可以由任何“sh”Git脚本处理 但是,如果将core.autocrlf
设置为false,则转换文本行终止的决定将是自愿的显式决定,而不是背景不可见的副作用
有关详细信息,请参阅“” |结果转换时间|结果转换时间 |提交带有各种|从回购中签出的文件- |EOL转换为回购协议和|,其中包含混合文件和 |core.autocrlf值:| core.autocrlf值: -------------------------------------------------------------------------------- 文件|真|输入|假|真|输入|假 -------------------------------------------------------------------------------- Windows CRLF | CRLF->LF | CRLF->LF |照原样|照原样| Unix-LF-as is | as is | as is | LF->CRLF | as is | as is Mac-CR |原样|原样|原样|原样|原样|原样 混合CRLF+LF |原样|原样|原样|原样|原样|原样 混合CRLF+LF+CR |原样|原样|原样|原样|原样|原样|原样
希望记事本兼容性不是一个重要的要求。不,记事本兼容性不是一个问题。听起来Unix终止是更好的选择。非常感谢。任何人在任何计算机上使用的每个程序也是如此。除了记事本之外。@BennettMcElwee我知道的每个平台上的每个GUI程序(包括写字板),除了记事本之外,都支持CRLF和LF,没有问题。然而,大多数控制台程序仍然不能处理这个问题。尝试运行一个或一个bash/perl/python。。。以CRLF结尾的脚本,请参见。即使使用vi(m),在打开Windows文本文件时,您也会看到大量的
^m
,至少在现代vim
s中,您通常仅在文件具有混合行结尾时才能看到^m
s,因此您可以看到哪些行具有CRLF,哪些行不具有CRLF。如果每一行都有相同的行尾,它在Unix或DOS模式下都可以正常工作。请注意:autocrlf
at true的一个棘手的副作用:我不喜欢投票给你,因为你的代表已经很疯狂了,但我已经搜索了太多的表格,所以我必须:)@CiroSantilli然后你可以投票给Adi Shavit:。这个表来自他。我们处于一个混合文件类型的异构环境中。我们绝对需要core.autocrlf=false。我在任何地方都找不到的是,如何为项目将其设置为false,这样我就不必依赖于每个开发人员都能正确设置。@EdRandall最接近的设置是:,但仍然需要手动git配置才能激活污迹。简单的回答是:任何项目本地配置都必须由用户激活。它不是由项目/回购本身自动设置的。
core.autocrlf
| Resulting conversion when | Resulting conversion when
| committing files with various | checking out FROM repo -
| EOLs INTO repo and | with mixed files in it and
| core.autocrlf value: | core.autocrlf value:
--------------------------------------------------------------------------------
File | true | input | false | true | input | false
--------------------------------------------------------------------------------
Windows-CRLF | CRLF -> LF | CRLF -> LF | as-is | as-is | as-is | as-is
Unix -LF | as-is | as-is | as-is | LF -> CRLF | as-is | as-is
Mac -CR | as-is | as-is | as-is | as-is | as-is | as-is
Mixed-CRLF+LF | as-is | as-is | as-is | as-is | as-is | as-is
Mixed-CRLF+LF+CR | as-is | as-is | as-is | as-is | as-is | as-is