前端有道 前端有道
导航
算法
开发
  • Git

    • Git导读
  • 收藏夹 (opens new window)
  • 工具库 (opens new window)
  • netlify Vuepress (opens new window)
  • vercel Vuepress (opens new window)
  • Vuepress2.0 (opens new window)
  • netlify Vuepress2.0 (opens new window)
留言区
娱乐
关于
  • 时间轴
  • 标签
  • 分类

星野

给岁月以文明
导航
算法
开发
  • Git

    • Git导读
  • 收藏夹 (opens new window)
  • 工具库 (opens new window)
  • netlify Vuepress (opens new window)
  • vercel Vuepress (opens new window)
  • Vuepress2.0 (opens new window)
  • netlify Vuepress2.0 (opens new window)
留言区
娱乐
关于
  • 时间轴
  • 标签
  • 分类
  • 浏览器

  • Git

    • Git导读
    • 常用Git命令清单
    • Git思维导图
    • Git分支开发模型规范
    • 图解Git
    • Git变基合并
    • Git 在 macOS 中忽略所有 .DS_Store 文件
      • 前言
        • 项目中
        • 全局忽略
        • 针对网络磁盘
    • Git本地仓库关联多个远程仓库
    • Git Commit表情大全
    • permissions 0755 问题解决
  • Mac

  • VSCode

  • GitHub

  • 工具
  • Git
星野
2022-02-18
0
目录

Git 在 macOS 中忽略所有 .DS_Store 文件

# Git 在 macOS 中忽略所有 .DS_Store 文件

# 前言

  • macOS 每个文件夹都存放着一个 .DS_Store 文件,是用于存放目录自定义属性(如图表、位置属性)等元数据信息的系统文件,由 Finder 自动创建。

虽然所有 . 开头的文件/文件夹默认隐藏(可以使用 Command + Shift+。 显示所有隐藏文件),.DS_Store却并不展示,需要通过终端ls -la命令列出,但是 Git 仍会将其记录下来,即便我只是在同目录下移动文件。为了避免 .DS_Store等文件提交到仓库中,通常选择忽略 .DS_Store 文件。

# 项目中

.gitignore (opens new window) 是 Git 提供的一个让用户控制 Git 忽略某些文件的文件。所有被 .gitignore 匹配的文件都不会被 Git 记录。

在仓库的根目录下创建一个 .gitignore 文件,添加以下内容

这样依赖这个仓库就不会再记录 .DS_Store 文件了。

如果远程仓库已经存在.DS_Store话,可以通过以下命令删除。

git rm --cached  */.DS_Store

// 或者
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

这样就删除了所有该仓库的 .DS_Store 。重新提交推送即可。

# 全局忽略

虽说可以使用上面的方法来忽略 .DS_Store ,但是每个仓库都要配置一遍,不如全局忽略来得方便。

  1. Finder根目录下打开终端,运行以下命令创建.gitignore_global文件
touch ~/.gitignore_global
  1. 通过编辑器修改该文件,添加以下内容。
*~
*.DS_Store
.DS_Store
.DS_Store?
**/.DS_Store
node_modules
**/node_modules
ehthumbs.db
Thumbs.db
 
# local env files
package-lock.json
package-lock.json?
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
  1. 使.gitignore_global生效
git config --global core.excludesfile ~/.gitignore_global
  1. 验证配置是否生效
git config --list

或者查看根目录下.gitignore文件

[core]
	excludesfile = /Users/[username]/.gitignore_global

就说明已经添加成功了,以后 Git 就不会再记录 .DS_Store。

# 针对网络磁盘

禁止生成 .DS_store

打开 “终端” ,复制黏贴下面的命令,回车执行,然后退出登录 macOS 账户并重新登录。

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

恢复生成.DS_store

defaults delete com.apple.desktopservices DSDontWriteNetworkStores

以上命令只是针对网络磁盘,想要阻止本地磁盘中 DS_Store 文件的自动生成,唯一的方式就是停止使用「访达」,我觉得没必要有点以小失大。

参考链接:

  • https://stackoverflow.com/questions/18393498/gitignore-all-the-ds-store-files-in-every-folder-and-subfolder
  • https://blog.ichr.me/post/git-ignore-all-ds-store-on-mac/
上次更新: 2022/05/10, 16:56:01
Git变基合并
Git本地仓库关联多个远程仓库

← Git变基合并 Git本地仓库关联多个远程仓库→

最近更新
01
图解Git
05-10
02
关于 - 网站错误反馈
05-10
03
关于 - 赞赏❤️的用途
05-10
更多文章>
加入前端有道交流群 | Copyright © 2018-2025 星野 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式