Featured image of post 解决MacOS到处拉屎的问题

解决MacOS到处拉屎的问题

.DS_Store是什么

这些文件是macOS系统自动生成的,用来存储文件夹的自定义属性,比如图标位置或背景图片。在Git仓库中,这些文件通常是不必要的,甚至可能引起问题,尤其是在多人协作时,其他操作系统用户可能会被干扰。

要去除仓库中的.DS_Store文件,并确保它们不再被提交,请按照以下步骤操作:

步骤 1:删除现有的 .DS_Store 文件

  1. 手动删除本地文件 在你的项目文件夹中搜索 .DS_Store 文件(可能需要显示隐藏文件),手动删除它们。

    • 在 macOS 上,可以通过终端命令快速删除当前目录及子目录下的所有 .DS_Store 文件:

      bash

      复制

      1
      
      find . -name ".DS_Store" -delete
      
  2. 通过 GitHub Desktop 或终端中用git命令提交删除操作(我这边用GitHub Desktop举例)

    • 打开 GitHub Desktop,仓库的更改列表会显示被删除的 .DS_Store 文件。
    • 勾选这些文件,填写提交信息(如 “Remove .DS_Store files”),点击 Commit to main(或当前分支)。

步骤 2:将 .DS_Store 添加到 .gitignore

  1. 编辑 .gitignore 文件

    • 在仓库根目录下找到 .gitignore 文件。如果没有,右键点击仓库空白处,选择 New File 创建。

    • .gitignore 中添加以下内容:

      复制

      1
      2
      
      # 忽略 macOS 系统文件
      .DS_Store
      
  2. 提交 .gitignore 更改

    • GitHub Desktop 会检测到 .gitignore 的变更,勾选并提交,填写信息如 “Add .DS_Store to gitignore”。

步骤 3(可选):从 Git 历史中清除已有的 .DS_Store

如果 .DS_Store 已经被提交到历史记录中,需从 Git 跟踪中彻底移除:

  1. 通过终端执行命令

    bash

    复制

    1
    2
    3
    4
    5
    
    # 移除所有已跟踪的 .DS_Store 文件
    git rm --cached -r .DS_Store
    # 提交变更
    git commit -m "Purge .DS_Store from Git history"
    git push
    

    注意:此操作需在命令行完成,GitHub Desktop 无直接界面支持。

额外建议

  • 全局忽略 .DS_Store(针对所有仓库) 在终端运行以下命令,避免 macOS 在所有仓库生成该文件:

    bash

    复制

    1
    2
    
    echo ".DS_Store" >> ~/.gitignore_global
    git config --global core.excludesfile ~/.gitignore_global
    
  • 提醒协作者更新配置 如果其他协作者使用 macOS,建议他们执行相同操作。

通过以上步骤,你的仓库将不再跟踪 .DS_Store 文件,且未来提交会自动忽略它们。

转载请注明出处喔!( •̀ ω •́ )✧
2023100985
使用 Hugo 构建
主题 StackJimmy 设计