【问题标题】:Can I safely gitignore "._" prefixed files我可以安全地 gitignore “._” 前缀文件吗
【发布时间】:2021-09-25 16:15:43
【问题描述】:

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

【问题讨论】:

    标签: git macos filesystems cross-platform gitignore


    【解决方案1】:

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

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

    这些附加信息中的大部分并不是真正需要(有时甚至没有意义)在不同的 macOS 系统之间传输,并且 没有 对于 Windows 系统来说是有意义的。因此,在传输文件时,通常将其忽略是安全的。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2019-12-09
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2014-11-12
      • 2020-05-06
      • 1970-01-01
      相关资源
      最近更新 更多