问题标签 [core.autocrlf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2400 浏览

git - 带有 autocrlf=true 的 Git 按原样检查具有混合行结尾的文件

所以,我一直认为,当将文件检出到工作目录时, core.autocrlf=trueGit 会替换所有LF结尾。CRLF

来自Git 书

如果您使用的是 Windows 机器,请将其设置为 true——这会在您签出代码时将 LF 结尾转换为 CRLF

但是,当检出具有混合行结尾并core.autocrlf设置为的文件时true,我的 Git 版本会按原样检出文件。

我找到了一个非常方便的 GitHub 存储库来测试这种行为 - https://github.com/YueLinHo/TestAutoCrlf

测试结果:

  • 只有结尾的文件LF(LF.txt)
    • With autocrlf=false: 按原样签出(所有行结尾都是LF
    • With :结帐时autocrlf=true所有行尾都更改为CRLF

到目前为止一切顺利,一切都如我所料。现在对于具有混合行尾的文件:

  • 具有混合行尾的文件(MIX-more_CRLF.txt、MIX-more_LF.txt)
    • With autocrlf=false: 按原样签出(LF和的混合CRLF
    • With autocrlf=true: 按原样签出(LF和的混合CRLF

为什么会这样?我还没有看到任何关于autocrlf=true不接触具有混合行尾的文件的信息。

我的 Git 设置有问题吗?在全局 .gitconfig 中签出后,我检查了存储库文件夹core.autocrlf中运行的设置,命令返回 true。没有 .gitattributes 文件可以覆盖设置。git config --get core.autocrlfautocrlf=true

所有测试都是在 Git 版本上进行的1.9.5.msysgit.0

编辑:在最新的 msysgit 版本上的行为相同1.9.5.msysgit.1

我最初的问题是,我以某种方式设法在设置为 时提交了一个只有LF结尾的混合行结尾文件,这意味着该文件按原样签出,但提交时更改为. 我目前正在另一台机器上工作,无法在我的 msysgit 版本上重现此行为。core.autocrlftrueCRLFLF

0 投票
2 回答
5262 浏览

windows - 在 Windows 中覆盖 .gitattributes text=auto

这是非常不直观的:

根据各种媒体的说法,core.autocrlf=false根本不应该有换行转换。

在项目根目录中,我发现.gitattributes以下行:

如果我评论它,警告就会消失。问题 - 我怎样才能.gitattibutes自动覆盖这个设置?

0 投票
0 回答
933 浏览

linux - Git存档行结尾与克隆不同

有很多关于CRLF/LF转换的问题和话题git

但是,我找不到专注于archive命令的那个。

在我的测试中,clone在 windows 和 linux 上都可以正常工作,但archive总是LF以文本文件的形式返回。

我想git archive在 linux 上使用该命令仅下载存储库的一部分,准备最终发布的 zip 文件……之后将在 Windows 上使用。

那么如何在使用命令CRLF时对文本文件进行 FORCE 呢?git archive

尝试失败:

顺便说一句,没有.gitattributes文件存在或涉及。

0 投票
0 回答
1425 浏览

android - 无法通过Android Studio版本控制系统向GitHub添加文件(LF替换CRLF)

我正在使用 Android Studio,并且我有大约 3 个文件无法添加到我对 GitHub 的提交中,因为当我尝试 (VCS > Git > +Add) 时出现此错误:

添加文件时出错

添加文件时出现以下问题:

致命的:CRLF 将被MyApp/app/src/.../blah.xml 中的 LF 替换

在执行期间 git add --ignore-errors --

MyApp/app/src/.../blah.xml

为什么会发生这种情况,我可以在 Mac 上做些什么来纠正这个问题

我已经尝试进入终端:git config --global core.autocrlf false并且git config --global core.safecrlf false按照建议,但这让我能够做的就是添加以前无法添加的文件。提交项目让我遇到了以前遇到的同样问题,而且我相信更复杂的事情(需要创建一个新的变更列表,这甚至没有解决问题)。我还查看了 Android Studio 首选项,但没有什么可以让我配置行尾,尤其是在 CRLF 和 LF 首选项之间。

我需要进一步解释:CRLF 和 LF 分别对应哪些行尾和格式这适用于我,一个在 Android Studio 上使用程序内置 VCS 的 Mac 用户

0 投票
1 回答
335 浏览

windows - 如何更改 git status 显示最终未提交的已修改文件的行为?

我在一个仅限 Windows 的工作环境中工作,开发人员使用各种工具来编辑他们的文件。我们.git与 atlassian 堆栈一起使用来对我们的代码进行版本控制。我几乎都喜欢。

我最近刚刚完成了一场漫长而艰苦的斗争,以了解 git 如何以及为什么解释行尾以及做什么core.autocrlf。我们决定使用core.autocrlf true,一切都很好。

我很想知道如何改变这种行为git status

  • 我有一个带有CRLF行尾的文件。
  • 我将行尾更改为LF

    /li>
  • 但是之后...

    /li>

对此:

  • 我有一个带有CRLF行尾的文件。
  • 我将行尾更改为LF

    /li>
  • 这是有道理的,因为无论如何都不会承诺任何事情。

这可能吗?

我相信可能的重复不符合我正在寻找的答案。我想强调一下,我确实(认为我)知道我的设置core.autocrlf true是做什么的,并希望保持这种状态。我感兴趣的是要么不检测git status无论如何都不会提交的更改,要么理解为什么这是不可能的。

0 投票
3 回答
10523 浏览

git - 'git apply' 失败,代码 1:SourceTree 中的尾随空格

我正在使用SourceTree在提交之前进行简单的代码审查。在 SourceTree 中,我经常暂存和提交我在文档中更改的部分行。

几天前,我收到了一位在 Windows 上工作的程序员发来的一段代码,这导致了行尾问题。如果我没记错的话,我设置core.autocrlftrue,这解决了 windows 文件的问题。然而,从那一刻起,我在另一个我正在处理的回购中遇到了重大问题。如果我只想在 SourceTree 中暂存文件的一部分,我现在会收到一个巨大的错误消息git apply' failed with code 1: [/a/long/path/here] trailing whitespace in SourceTree。所以我想我需要core.autocrlf回到它是什么,我“假设”是(“所有的母亲......等等”)false(我以前从未搞砸core.autocrlf过)。因此,我将其设置为false突然使我仅更改一个字母的所有文件都标记为已更改文件中的所有行,这显然是代码审查期间的主要麻烦。

所以我四处搜索,我在 SO 上找到了一些解决方案的例子,但所有这些都使用添加额外的参数并做各种奇怪的事情。除了我不认为我可以在 SourceTree 的 GUI 中插入自定义命令这一事实之外,我最想知道的是;怎么变得这么乱?最重要的是,我不能回到原来的状态(不管那是什么),而不必每次我想登台和提交时都发出额外的命令吗?git add

请注意; 我不害怕命令行,我几乎整天都在它上面工作。但我只是喜欢在 SourceTree 等 GUI 中进行代码审查。

任何可以帮助我恢复正常的提示都会对我有很大帮助!

0 投票
1 回答
139 浏览

git - 如何在存储库中提交 autocrlf 设置

我们正在 Windows、Linux 和 Mac 上跨平台工作,我们使用 GIT 进行协作。最近我们偶然发现了autocrlf避免Carriage Return和的设置Line Feed,并发现它们在不同的平台上表现出不同的行为。

我们找到了一种解决方法来标记autocrlf = false. 但是每个队友都必须更改她在机器上的设置。

我的问题是,我们是否有一些解决方法可以签入 repo 中的 autocrlf 设置,这样用户就不必自己更改她的设置?并且设置会自动更新。

0 投票
0 回答
730 浏览

git - git autocrlf 设置为输入未按预期工作

我已经使用这条线设置了我的全局 git 配置

根据我的阅读,我了解到无论我的存储库是在 Windows 还是 unix 上,提交行结尾都应该转换为 LF。

但是,当我提交时,CRLF 会保持原样。
为了验证我在提交后重置了文件。

0 投票
1 回答
670 浏览

git - Git 说我正在添加 '^M' 但 core.autocrlf 是真的

问题很简单。Git 说我已将 CR ( ^M) 添加到文件中,

但我已经core.autocrlf设置为true。

我以前没有遇到过这个问题,也不知道是什么原因造成的。我一直都core.autocrlf设置为 true 并且在此之前从未抱怨过添加^M


这是git config --list删除了一些个人信息、gui 设置和分支设置的输出,以防万一需要。

0 投票
2 回答
375 浏览

git - 根据用例正确设置 git autocrlf

我正在寻找根据某些用例使用的正确设置,但找不到任何描述相同的来源。因此,我问这个问题是为了给任何寻找 git 的 autocrlf 选项的正确设置的人提供解决方案。

用例 1:我在 Mac 上,其他开发人员都在 Windows 上。在我加入之前,他们正在管理源代码。

用例 2:我在 Windows 上,其他开发人员都在 Mac 上。在我加入之前,他们正在管理源代码。

用例 3:我在 Linux 上,其他开发人员都在 Windows 上。在我加入之前,他们正在管理源代码。

用例 4:我在 Windows 上,其他开发人员都在 linux 上。在我加入之前,他们正在管理源代码。

用例 5:我在 Linux 上,其他开发人员都在 Mac 上。在我加入之前,他们正在管理源代码。

用例 6:我在 Mac 上,其他开发人员都在 Linux 上。在我加入之前,他们正在管理源代码。

我应该使用 git core.autocrlf 的什么设置?

编辑: 为什么这个问题与许多类似问题不重复:

所有其他问题及其答案都提供了所需的事实和知识,让读者有很多工作要做。这个问题旨在针对特定场景询问具体答案。