相关疑难解决方法(0)

git用CRLF代替LF

使用bash在Windows XP计算机上运行git.我从SVN导出了我的项目,然后克隆了一个裸存储库.

然后我将导出粘贴到裸存储库目录中,并执行了:

git add -A
Run Code Online (Sandbox Code Playgroud)

然后我得到一条消息列表:

LF将由CRLF取代

这种转变的后果是什么?这是Visual Studio中的.NET解决方案.

git

777
推荐指数
20
解决办法
56万
查看次数

如何强制git在windows下使用LF而不是CR + LF?

我想强制git在Windows下检出文件LF而不是CR+LF.我检查了两个配置选项,但我无法找到正确的设置组合.

我希望它将所有文件转换为LF并保留LF文件.

备注:我使用autocrlf = input但是这只是在你提交时修复文件.我想强制它让他们使用LF.

可能我不是那么清楚:存储库已经在使用LF但是使用msysgit检出的文件正在使用CR+LF,我想强制msysgit使用它们LF:强制Unix行结束.

>git config --list | grep crlf
core.autocrlf=input
Run Code Online (Sandbox Code Playgroud)

git msysgit

302
推荐指数
5
解决办法
19万
查看次数

尝试使用git filter-branch修复行结尾,但没有运气

我被git用Windows/Linux行结束问题所困扰.看来,通过GitHub,MSysGit和其他来源,最好的解决方案是让你的本地存储库设置为使用linux风格的行结尾,但设置core.autocrlftrue.不幸的是,我没有及早做到这一点,所以现在每次我进行更改时,行结尾都会被剔除.

我以为我在这里找到了答案,但我无法让它为我工作.我的Linux命令行知识充其量是有限的,所以我甚至不确定"xargs fromdos"行在他的脚本中做了什么.我不断收到关于没有这样的文件或目录的消息,当我设法将它指向现有目录时,它告诉我我没有权限.

我在Windows上通过Mac OS X终端尝试使用MSysGit.

git newline line-endings msysgit

266
推荐指数
3
解决办法
6万
查看次数

为什么 .gitattributes 不会覆盖 Linux 上的 core.autocrlf 配置?

在为项目设置 Git 时,我注意到行尾规范化在 Linux 和 Windows 上的工作方式略有不同。

据我了解有关此主题的 Git 文档,Windows 上的行为是正确的。具体来说,当.gitattributes文件存在时,它应该覆盖core.autocrlf设置。

下表显示了我所做的一些实验的结果。最左边的两列显示.gitattributes文件和core.autocrlf设置。其他列显示以下git命令的结果:

  1. git rm --cached <file> (强制下一次结帐以执行行规范化处理)。
  2. git checkout HEAD -- <file> (签出文件,应用行结束规范化)
  3. git ls-files --eol <file> (检查工作树中的行尾)
+----------------+---------------+-------------+-- ------------+--------------+-------------- ----+----------------------------+
| .git 属性 | core.autocrlf | Linux 2.7.2 | Linux 2.11.0 | Linux 2.16.2 | Windows 2.12.2.windows.2 | Windows 2.16.1.windows.1 |
| | | | | | | |
+----------------+---------------+-------------+-- ------------+--------------+-------------- ----+----------------------------+
| 无 | 真实| 带crlf | 带crlf …

git line-endings eol carriage-return linefeed

8
推荐指数
1
解决办法
1991
查看次数

标签 统计

git ×4

line-endings ×2

msysgit ×2

carriage-return ×1

eol ×1

linefeed ×1

newline ×1