如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
使用touch.gitignore命令创建.gitignore文件
并在其中添加以下行
.DS_Store
保存.gitignore文件,然后将其推送到git repo中。
其他回答
我必须将上面的git rm更改为git rm才能使其工作:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
初始化存储库时,跳过包含
-u
这不应该是个问题。
对于那些没有得到上述任何方法帮助的人,请尝试更彻底地检查您的.gitignore,它可能会在目录和子目录之间有一些规则组合,因此烦人的.DS_Store文件不会仅在这些文件夹中被忽略。例如,您希望忽略除自定义目录中的文件夹外的gensrc文件夹,因此可以使用以下.gitignore:
.DS_Store
gensrc
!custom/**
因此,在这个设置中,忽略了任何/path/.DS_Store,而不是自定义/gensrc/.DS_Store,修复程序将把.DS_Store条目移动到.gitignore文件的底部。
如果要将DS_Store文件删除到每个文件夹和子文件夹:如果已提交DS_Store:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
通过以下方式忽略它们:
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
步骤1
这将删除目录(包括子目录)中的每个.DS_Store文件
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
步骤2
将此添加到.gitignore以防止根目录和每个子目录中的任何DS_Store文件进入git!
**/.DS_Store
从git文档中:
前导“**”后接斜杠表示所有目录中的匹配。例如,“**/foo”与任何位置的文件或目录“foo”匹配,与模式“foo“相同。“**/foo/bar”匹配直接位于目录“foo”下的文件或目录“bar”。
推荐文章
- 如何获得我的代码的最新版本?
- 如何在git中找到原始/master的位置,以及如何更改它?
- Linux相当于Mac OS X的“open”命令
- 如何在Mac上的命令行安装JQ ?
- 在Mac OS X上安装/升级gradle
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何在终端中提高光标速度?
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- Objective-C中的自动引用计数不能防止或减少什么样的泄漏?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹