gpt4 book ai didi

Git CRLF 更改显示在 git status 中

转载 作者:太空狗 更新时间:2023-10-29 13:38:15 25 4
gpt4 key购买 nike

我知道有很多与此类似的问题/答案,但是我找不到这个问题的具体答案。我们是一家 .net 商店,正在使用 git。

我想要一种方法来在执行 git status 时忽略对文件的 CRLF (^M) 更改。在开发过程中,其他进程偶尔会修改文件并注入(inject) CRLF,最终导致它们在完成 git status 时显示为已修改。我的 .gitattributes 文件中有一行“* text=auto”,以便在 checkout/提交时规范化行结尾,但这不是我想要的。我还尝试将以下内容添加到 git 配置 (core.whitespace=cr-at-eol),但它们仍然显示为已修改。

我如何告诉 git 忽略对 CRLF (^M) 的所有更改?

最佳答案

您不能忽略 git status 的文件更改类型。您可以使用 .gitignore 忽略整个文件。您可以使用各种空白选项来转换已提交的内容、突出显示的内容(红色)或在 diff 和提交 View 中完全显示的内容。

您不能忽略这些文件更改的原因是:

  • 跟踪文件更改是版本控制的重点。
  • Git 使用 SHA1 表示文件内容独立于路径内容的散列。您的 ^M 会影响 SHA1,因此它不可避免地具有重要意义。

简而言之,您可能需要修复其他流程或开发清理后流程。或者你可以使用:

git diff-files --name-status --ignore-space-at-eol

这不是 status 的完美模拟,但它可能足以满足您的需求。为了方便起见,您甚至可以通过添加到您的 .gitconfig 来构建一个 git-alias 的“statusx”命令:

[alias]
statusx = diff-files --name-status --ignore-space-at-eol

如果证明不合适,还有一些额外的空格选项:--ignore-space-change--ignore-all-space。有关详细信息,请参阅 git diff --help

关于Git CRLF 更改显示在 git status 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24172141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com