8

我正在使用 git-gui 进行版本控制并将它们推送到远程位置。当我尝试重新扫描文件以进行更改时,我收到了这条消息,但我不确定这意味着什么。请帮帮我。

在此处输入图像描述

Updating the Git index failed.  A rescan will be automatically started to resynchronize git-gui.

warning: LF will be replaced by CRLF in bin/jarlist.cache.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in gen/com/click4tab/pustakalpha/BuildConfig.java.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in proguard-project.txt.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in project.properties.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in res/layout/start_test.xml.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in res/menu/start_test.xml.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/com/click4tab/pustakalpha/StartTestActivity.java.
The file will have its original line endings in your working directory.
4

4 回答 4

4

解决方案是接受这种行为。你在 Windows 上,所以你应该有. 它在那里,所以 Git 内部记录中的行尾是一致的。那里有警告,因此您可以查看在提交期间是否会意外损坏二进制文件。autocrlftrue

单击继续。如果您想防止这些文件再次发生这种情况,您需要取消暂存这些文件,然后更正行尾并再次暂存它们。通过在编辑器中将文件的行尾更改为 CRLF/Windows 来执行此操作,或者将这些命令行工具放到您的system32目录中,以便您可以unix2dos some_file.java在任何命令提示符下对此类文件进行操作。

于 2014-08-20T02:37:19.160 回答
3

我遇到了类似的问题,并决定仔细查看我的配置。

Windows / Linux / MAC 上的换行符:

  1. X 之前的 MAC OS:\r = CR(回车)
  2. MAC OS X / UNIX:\n = LF(换行)
  3. 窗口:\r\n = CR + LF

不要恐慌。Git 可以为您处理平台之间的转换。

Git 应该将以 LF 结尾的行存储在 repo 中。

设置为;

TRUE - 如果您在 Windows 上

git config --global core.autocrlf true

当您签出代码时,这会将 LF 结尾转换为 CRLF。

输入 - 如果您在 MAC/LINUX 上

你不需要转换任何东西,Git 使用 LF,而你的 MAC 使用 LF。

但是,如果一个通过,你可以告诉 git 转换任何 CRLF:

git config --global core.autocrlf input

错误 - 不推荐

我不推荐这个,但只是为了这个解释:

如果你是一个只在 windows 机器上工作的 windows 开发人员,并且你 100% 确定你永远不会在 MAC 上与人一起工作:

git config --global core.autocrlf false

更新:

正如下面评论的那样,我没有提到可以为项目默认这些设置的 .gitattributes。

如果你有时间,这里是文档:http ://git-scm.com/docs/gitattributes

于 2015-08-28T15:35:45.700 回答
1

在 Unix 系统中,行尾用换行符 (LF) 表示。在windows中,一行用回车符(CR)和换行符(LF)表示(CRLF)。当您从 git 获取从 unix 系统上传的代码时,它们将只有一个 LF。

如果要关闭此警告,请在 git 命令行中键入

git config core.autocrlf true

如果您想做出明智的决定 git 应该如何处理,请阅读文档

这是一个片段

格式和空白

格式和空白问题是许多开发人员在协作时遇到的一些更令人沮丧和微妙的问题,尤其是跨平台。补丁或其他协作工作很容易引入细微的空白更改,因为编辑器会默默地引入它们,并且如果您的文件曾经触及 Windows 系统,它们的行尾可能会被替换。Git 有一些配置选项可以帮助解决这些问题。

core.autocrlf

如果您在 Windows 上编程并与非 Windows 的人一起工作(反之亦然),您可能会在某些时候遇到行尾问题。这是因为 Windows 对其文件中的换行符同时使用回车符和换行符,而 Mac 和 Linux 系统仅使用换行符。这是跨平台工作的一个微妙但令人难以置信的事实;Windows 上的许多编辑器会默默地用 CRLF 替换现有的 LF 样式的行尾,或者在用户按下回车键时插入两个行尾字符。

当您将文件添加到索引时,Git 可以通过将 CRLF 行结尾自动转换为 LF 来处理这个问题,反之亦然,当它检出代码到您的文件系统时,反之亦然。您可以使用 core.autocrlf 设置打开此功能。如果您使用的是 Windows 机器,请将其设置为 true - 当您签出代码时,这会将 LF 结尾转换为 CRLF:

$ git config --global core.autocrlf true

如果您在使用 LF 行结尾的 Linux 或 Mac 系统上,那么您不希望 Git 在您检出文件时自动转换它们;但是,如果意外引入了带有 CRLF 结尾的文件,那么您可能希望 Git 修复它。您可以通过将 core.autocrlf 设置为输入来告诉 Git 在提交时将 CRLF 转换为 LF,但不能反过来:

$ git config --global core.autocrlf input

此设置应在 Windows 结帐中为您提供 CRLF 结尾,但在 Mac 和 Linux 系统以及存储库中为 LF 结尾。

如果你是一个 Windows 程序员,正在做一个仅限 Windows 的项目,那么你可以关闭这个功能,通过将配置值设置为 false 来记录存储库中的回车:

$ git config --global core.autocrlf false
于 2019-06-27T12:30:44.563 回答
-3

这行代码应防止出现此警告:

git config core.autocrlf false

如果您想要更详细的答案,如输入该行代码的方式和位置,请查看此处: https ://stackoverflow.com/questions/3841140/git-how-to-get-rid-of-the-annoying-crlf -message-on-msysgit-windows

于 2013-03-15T11:39:42.233 回答