我尝试使用CRLF结束行提交文件,但失败了.
我花了整整一天的时间在我的Windows计算机上尝试不同的策略,几乎被迫停止尝试使用Git而是尝试使用Mercurial.
每个答案只能分享一个最佳实践.
我有一个从Windows和OS X访问的Git存储库,我知道已经包含一些带有CRLF行结尾的文件.据我所知,有两种方法可以解决这个问题:
设置core.autocrlf到false无处不在,
按照指示在这里(回荡在GitHub上的帮助页)到存储库转换为只包含LF行结束,然后设置core.autocrlf要true在Windows和input在OS X上有这样做的问题是,如果我有仓库中任何二进制文件那:
他们会被腐化.我的存储库可能包含这些文件.
那么为什么我不应该关闭Git的行结束转换呢?网上有很多模糊的警告关于core.autocrlf关闭造成问题,但很少有具体问题; 到目前为止我唯一发现的是kdiff3无法处理CRLF结尾(对我来说不是问题),而且一些文本编辑器有行结束问题(对我来说也不是问题).
存储库是我公司的内部存储库,因此我不需要担心与具有不同autocrlf设置或行结束要求的人共享它.
是否有任何其他问题只是留下我不知道的行结尾?
以下情况:
我正在使用运行OS X的Mac,最近加入了一个项目,其成员到目前为止都使用Windows.我的第一个任务之一是在Git存储库中设置代码库,所以我从FTP中提取目录树并尝试将其检入我本地准备的Git仓库.在尝试这样做的时候,我得到的就是这个
fatal: CRLF would be replaced by LF in blog/license.txt.
因为这会影响"blog"文件夹下面的所有文件,所以我正在寻找一种方法,可以方便地将树中的所有文件转换为Unix行结尾.是否有一个开箱即用的工具或者我自己编写脚本?
作为参考,我的Git配置有关行结尾:
core.safecrlf=true
core.autocrlf=input
我有带VS项目的Windows机器,我使用Visual Studio和Cygwin环境中的工具,包括Git.有时我在编辑后会在文件中得到不同的行结尾.我想要简单的解决方案来检查文件的行结束一致性,然后再去回购.core.safecrlf我认为Git 是正确的.现在我有一个奇怪的行为:
文件A和B以下参数:
$file A
A: HTML document, UTF-8 Unicode text, with CRLF line terminators
$file B
B: HTML document, UTF-8 Unicode (with BOM) text, with CRLF line terminators
文件A已经在repo中,文件B是新的.注意,两者都有CRLF行结尾.现在尝试上演他们,core.safecrlf是true.
$git add A  # ok
$git add B  # fails
fatal: CRLF would be replaced by LF in B.
我core.safecrlf正确使用?或者我可能需要编写钩子来检查文件?
笔记:
core.autocrlfGit中有相关功能,将其添加到标签中(Stackoverflow没有标签core.safecrlf)编辑#1:签出core.autocrlf- 它是input.改为false,现在我可以添加两个文件.为什么?
我遇到了一个非常奇怪的空白问题。
我正在使用 wp-content/themes 文件夹中带有 .git repo 的 WordPress 站点的本地副本,以便跟踪对任何主题的所有更改等。
当我设置 repo 时,它认为每个文件(除了 gitignore 中的文件)都是新文件,我将它们作为“初始提交”提交。
首先这正常吗?在设置新仓库时必须提交所有文件?第二 - 这是奇怪的行为。
当我转储这些文件时,我在许多文件的第一个字符后插入了一些空格。

我认为这与行尾有关。我的全局配置设置为 autocrlf = true 我也试过了
 autocrlf = true
 eol = native
在我的本地 git 配置中。.gitattributes 设置为:
* text=auto
按照git repo 和工作副本中的 Force LF eol 的建议
到目前为止没有任何帮助。我在 Windows 机器上工作,但文件是从 linux 服务器上压缩的,只是解压缩到目录中。