Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上的Git 1.6.4测试版(msysgit)-Unix或DOS行终止_Git_Msysgit - Fatal编程技术网

Windows上的Git 1.6.4测试版(msysgit)-Unix或DOS行终止

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线路终止。但是,它将尝试检测具有不一致行结束符的文本文

我正在Win Vista开发VPC上安装msysgit 1.6.4测试版。安装屏幕正在请求我是使用Unix行终止还是使用DOS行终止。通常,我会选择DOS,但是设置文本表明DOS终止可能意味着文件不能与Git的所有命令行工具一起工作。Unix行终止状态为“…大多数[Windows]应用程序都可以处理此…”


有人知道我应该选择哪个选项通过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