.DS_Store是什么
这些文件是macOS系统自动生成的,用来存储文件夹的自定义属性,比如图标位置或背景图片。在Git仓库中,这些文件通常是不必要的,甚至可能引起问题,尤其是在多人协作时,其他操作系统用户可能会被干扰。
要去除仓库中的.DS_Store
文件,并确保它们不再被提交,请按照以下步骤操作:
步骤 1:删除现有的 .DS_Store
文件
-
手动删除本地文件 在你的项目文件夹中搜索
.DS_Store
文件(可能需要显示隐藏文件),手动删除它们。-
在 macOS 上,可以通过终端命令快速删除当前目录及子目录下的所有
.DS_Store
文件:bash
复制
1
find . -name ".DS_Store" -delete
-
-
通过 GitHub Desktop 或终端中用git命令提交删除操作(我这边用GitHub Desktop举例)
- 打开 GitHub Desktop,仓库的更改列表会显示被删除的
.DS_Store
文件。 - 勾选这些文件,填写提交信息(如 “Remove .DS_Store files”),点击 Commit to main(或当前分支)。
- 打开 GitHub Desktop,仓库的更改列表会显示被删除的
步骤 2:将 .DS_Store
添加到 .gitignore
-
编辑
.gitignore
文件-
在仓库根目录下找到
.gitignore
文件。如果没有,右键点击仓库空白处,选择 New File 创建。 -
在
.gitignore
中添加以下内容:复制
1 2
# 忽略 macOS 系统文件 .DS_Store
-
-
提交
.gitignore
更改- GitHub Desktop 会检测到
.gitignore
的变更,勾选并提交,填写信息如 “Add .DS_Store to gitignore”。
- GitHub Desktop 会检测到
步骤 3(可选):从 Git 历史中清除已有的 .DS_Store
如果 .DS_Store
已经被提交到历史记录中,需从 Git 跟踪中彻底移除:
-
通过终端执行命令
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
文件,且未来提交会自动忽略它们。