如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
如果要将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
其他回答
初始化存储库时,跳过包含
-u
这不应该是个问题。
有时.DS_Store文件位于远程存储库中,但在本地项目文件夹中不可见。要解决此问题,我们需要删除所有缓存的文件并再次添加。
步骤1:将其添加到.gitignore文件中。
# Ignore Mac DS_Store files
.DS_Store
**/.DS_Store
步骤2:删除缓存的文件,然后使用这些命令再次添加。
git rm -r --cached .
git add .
git commit -am "Removed git ignored files"
git push -f origin master
永久删除此文件的最佳方法:
生成全局.gitignore文件:
echo .DS_Store >> ~/.gitignore_global
让Git知道您希望将此文件用于所有存储库:
git config --global core.excludesfile ~/.gitignore_global
就是这样。DS_Store将在所有存储库中被忽略。
以下方法对我来说效果最好。处理了不匹配的文件,以及本地修改的文件。作为参考,这是在运行git 1.7.4.4的Mac 10.7系统上。
查找并删除:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f
我还通过设置全局core.excludsfile来全局忽略.DS_Store。
首先,创建文件(如果还不存在):
touch ~/.gitignore
然后添加以下行并保存:
.DS_Store
现在配置git以全局尊重文件:
git config --global core.excludesfile ~/.gitignore
排名靠前的答案很好,但帮助像我这样的新手,下面是如何创建.gitignore文件,编辑它,保存它,删除您可能已经添加到git的文件,然后将文件推到Github。
创建.gitignore文件
要创建.gitignore文件,只需触摸创建具有指定名称的空白文件的文件即可。我们希望创建名为.gitignore的文件,以便可以使用以下命令:
touch.gitignore
忽略文件
现在,您必须将告诉git忽略DS Store文件的行添加到您的.gitignore中。您可以使用nano编辑器来完成此操作。
nano.git忽略
Nano很好,因为它包含如何退出的说明。(按Ctrl-O保存,按Ctrl-X退出)
复制并粘贴Github要点中的一些想法,其中列出了一些要忽略的常见文件。要回答这个问题,最重要的是:
# OS generated files #
######################
.DS_Store
.DS_Store?
#是注释,将帮助您在文件增长时组织文件。
这篇Github文章也有一些一般的想法和指导原则。
删除已添加到git的文件
最后,您需要从目录中实际删除这些DS Store文件。
使用这个来自投票结果最高的命令。这将遍历目录中的所有文件夹,并从git中删除这些文件。
查找-name.DS_Store-print0|xargs-0 git rm-f--忽略取消匹配
将.gitignore推送到Github
最后一步,您需要实际提交.gitignore文件。
git状态
git-add.gitignore
gitcommit-m‘.DS_Store已被驱逐!’
推荐文章
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- “你有邮件”的消息在终端,os X
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- Mac OS X中的环境变量
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖