gpt4 book ai didi

git - 在git中将文件设置为非二进制

转载 作者:太空狗 更新时间:2023-10-29 12:50:37 31 4
gpt4 key购买 nike

我有一个包含大量 .cs 文件的文件夹。其中一些文件(出于某种原因)被跟踪为二进制文件,并且 git diff 命令不能正常使用它们。我尝试将所有这些文件重新保存为 UTF-8 编码,但没有帮助。我尝试更改目录、目录名、文件名和文件扩展名,所有这些都有帮助。

我还尝试修改 .gitattributes 文件以将 *.cs 文件视为非二进制文件,但它对我没有帮助:

*.cs diff=csharp

我需要一种方法来将所有这些文件设置为非二进制文件,而无需更改它们的路径或名称。有这样的方法吗?

最佳答案

你可以这样做来强制 git 认为它是文本:

 *.cs diff

尽管如此,您还是要确保它确实是文本。 强制 Git 认为您的文件是文本,而实际上它不是,这会在各种情况下导致极其糟糕的行为.

您可能还需要设置一些其他属性:

 *.cs diff merge text

该文本对于 EOL 规范化很有用。如果 Git 在 merge 时仍然认为文件是二进制文件,则您可能需要 merge 。

但是,真正的问题是 “为什么 Git 将我的文件标记为二进制文件?” 答案是因为它在文件的前 8000 个字符中的某处看到了 NUL (0) 字节。通常,发生这种情况是因为文件被保存为 UTF-8 以外的格式。因此,它很可能被保存为 UCS-2、UCS-4、UTF-16 或 UTF-32。在使用 ASCII 字符时,所有这些都嵌入了 NUL 字符。因此,虽然您的问题说您确实将文件重新保存为 UTF-8,但您可能需要使用十六进制编辑器再次检查。我怀疑它们不是 UTF-8,这就是问题的核心。

关于git - 在git中将文件设置为非二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722971/

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