我可以安全地忽略“._”前缀文件吗

Can I safely gitignore "._" prefixed files

我正在开发一个在 windows 和 mac OS 上开发的 Unity 项目。 当我从 mac os 端提交时,我在回购协议中得到了这些烦人的“._”前缀文件,我可以安全地忽略这些文件吗(就像 DS_STOREs 一样) ?

是的,忽略这些文件通常是安全的,尤其是在跨平台工作时。它们可以包含各种 Mac 特定的文件系统元数据;你的 Windows 计算机无论如何都不知道如何处理该元数据,所以如果你出于某种原因依赖它......你会在 Windows 方面倒霉,无论是否他们被保留了。

更详细地说:macOS 的首选卷格式 HFS+ 和 APFS 可以存储关于文件的各种元数据——Finder 信息、标签、隔离状态等等。其中大部分存储为“扩展属性”或 xattrs,您可以使用 ls -l@xattr -l 从 macOS 命令行中看到它们。但是其他卷格式(以及 tar 和 zip 等存档格式)不支持所有这些扩展元数据,因此 Mac 文件系统将其存储在一个单独的文件中,前缀为“._”,在 "AppleDouble" format.

对于不同 macOS 系统之间的传输,大多数这些附加信息并不是真正需要的(有时甚至是有意义的),其中 none 对Windows系统。所以在传输文件时通常可以安全地忽略它。

(有关丢失元数据不安全的示例,请参阅 this Q&A。它涉及一个 Finder 别名文件——有点像 symlimk,但有所不同——丢失了标识它的元数据作为别名,因此变得无法使用。但是 Windows 无论如何都不理解 Finder 别名,所以你最好不要在你的项目中使用它们。)

顺便说一句,您有时会看到这些文件被称为包含“资源分支”,但这并不正确。资源分叉是一种较旧类型的 Mac-特定元数据,几乎不再使用。如果您确实有任何带有资源分支的文件,并将它们放在非 Mac 本地卷上,则资源分支 存储在“._”文件中(以及任何其他 xattrs),但你可能不这样做,所以“._”文件根本不可能包含资源分支。