我有一个Git仓库,到目前为止主要用于Windows开发。 Git EOL问题的大多数方面(LF与CRLF)并不重要,开发过程没有任何障碍 迁移到CMake构建环境后,我想在UNIX / Linux / MacOS上构建代码。代码本身是可移植的,但从过去的经验和一些初步实验来看,过渡有点痛苦,Git将未经修改的文件上的整个目录标记为已修改,检测到文件中看似未经修改的行并搞砸了[敏感文件/文件夹名称]。
此外,它seems that as of Git 1.7.2,Git有一个新的EOL系统,基于本地,每个项目,签到,.gitattributes
而不是每个用户,全局,{{1}每个平台上的每个用途都应该设置。
任何人都可以建议一个repo准备路径/进程(在Windows上),这将允许我在没有所有这些麻烦的情况下在Linux上提取和提交文件吗?
可以看到部分建议,例如here,但这太过暴力,并未考虑.gitattributes
专门打算原样保留的文件(例如.gitattributes
)
答案 0 :(得分:0)
我使用Notepad2,你可以将默认的Line Endings更改为Linux(LF)。
如果我理解正确,则无需将源文件更改为 在Windows机器上有LF。虽然Git用LF检查它们,但它们可以 在Windows上查看了CRLF。
对我来说这是大不是没有。使用git时我想查看完全回购中的内容。当任何体面的Windows文本编辑器允许您选择默认的行结尾时,我看到no reason有git转换行结尾。我不会也不会允许git弄乱Line Endings。
答案 1 :(得分:0)
一般情况下,在将数据存储到VCS中之前不要自动转换数据(git IIRC中的autocrlf = false),否则你会得到关于数据发生变化的误报。保留数据对VCS之外的工具(编辑器等)意味着什么的“解释”。
为防止虚假换行,请考虑: