如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
永久删除此文件的最佳方法:
生成全局.gitignore文件:
echo .DS_Store >> ~/.gitignore_global
让Git知道您希望将此文件用于所有存储库:
git config --global core.excludesfile ~/.gitignore_global
就是这样。DS_Store将在所有存储库中被忽略。
其他回答
我参加晚会有点晚了,但我有一个好答案。要删除.DS_Store文件,请在终端窗口中使用以下命令,但要非常小心地使用“find”删除文件。在-name选项中使用特定名称是更安全的使用方法之一:
cd directory/above/affected/workareas
find . -name .DS_Store -delete
如果您想简单地在前后列出它们,可以省略“-delete”。这会让你放心,他们走了。
关于~/.gitignore_global建议:请注意这里。你想把这个漂亮的文件放在每个工作区的顶层并提交它,这样任何克隆您的repo的人都将从中受益。
步骤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”。
将此添加到文件中。gitignore
#Ignore folder mac
.DS_Store
保存并提交
git add -A
git commit -m "ignore .DS_Store"
现在你忽略了这一切
使用touch.gitignore命令创建.gitignore文件
并在其中添加以下行
.DS_Store
保存.gitignore文件,然后将其推送到git repo中。
我发现snipplr的下面一行在擦除所有.DS_Store方面做得最好,包括一个具有本地修改的行。
find . -depth -name '.DS_Store' -exec git-rm --cached '{}' \; -print
--cached选项,保留本地.DS_Store,因为它无论如何都会被复制。
正如上面提到的,将.DS_Store添加到项目根目录的.gitignore文件中。那么它将不再在你的视线中(回购)。
推荐文章
- 如何获得我的代码的最新版本?
- 如何在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文件夹