如何从 Git 存储库中删除 DS_Store 文件

从 git 中删除 DS_Store 文件

如果您在 Mac 平台上使用 git,您可能在 git 存储库中遇到过 DS_Store 文件。这些可能会使 git 存储库变得烦人和混乱,而且由于 .DS_Store 文件在 git 存储库中维护,您甚至可能会遇到不必要的冲突,您可能会在其中看到错误消息,例如 “文件 .DS_Store 和 .DS_Store 有一个树冲突”。因为绝大多数 git 存储库不需要 .DS_Store 文件,而且通常只会导致问题,所以从 git 存储库中删除 .DS_Store 文件是合理的。

首先,如果您想知道 DS_Store 文件是什么首先,它基本上是一个包含 Mac 上文件夹特定元数据的文件。因此,.DS_Store 文件包括从有关视图类型、文件/文件夹大小、缩略图信息、文件夹布局和任何 Finder 级别自定义的元数据到 Mac 上的特定文件夹的所有内容。由于 .DS_Store 文件的前缀是 .在文件名中,它们对 Finder 不可见(有效地使它们成为隐藏文件),但会显示在命令行中,并且使用命令行工具或存储库管理器(如 git)默认将每个文件(包括隐藏文件)包含在一个目录。

虽然 .DS_Store 文件显然对 Finder 有用,但它们对 git 存储库没有用。让我们回顾一下如何从 git 存储库中删除所有 DS_Store 文件,以及如何防止它们被存储在未来的 git 存储库中。

如何从 Git 存储库中删除现有的 .DS_Store 文件

  1. 打开终端,然后导航到您希望清除 .DS_Store 文件的 git repo 目录
  2. 输入以下命令字符串:
  3. <代码>找到 . -名称.DS_Store -print0 | xargs -0 git rm -f –ignore-unmatch

这将找到 .DS_Store 文件并将其删除。

如果您想走得更远,您实际上可以删除所有 DS_Store使用 find 命令的另一种变体从 Mac 中搜索文件,但请注意,这样做会丢失所有 Finder 窗口和文件夹自定义项,因此不特别建议采用该方法。

如何在 git 中忽略 .DS_Store 文件

现在让我们更进一步,首先阻止 git 维护和提交 DS_Store 文件,而是完全忽略它们。这是通过修改(或创建)活动仓库目录中的 .gitignore 文件来完成的:

echo .DS_Store >> .gitignore

现在您需要将 .gitignore 文件添加到您的存储库,并提交更改。

git 添加.gitignore

git commit -m '忽略 .DS_Store 文件'

就其价值而言,不仅仅是 git 会遇到 .DS_Store 文件创建或混乱的问题,或者可能会从忽略它们中受益,您还可以 从 zip 存档中排除 DS_Store 文件 在 Mac 上创建,这有助于减少混乱(并防止机器特定的元数据)保存在压缩文件。您可能会发现 .DS_Store 文件在网络环境中令人讨厌,但是 defaults 命令可以阻止 DS_Store 文件的创建用于网络卷 如果需要的话。