如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
有时.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
其他回答
这对我很有用,上面有两个答案:
$git rm--缓存-f*.DS_Store$gitcommit-m“过滤器分支--索引过滤器'git rm--缓存--忽略取消匹配.DS_Store“$git推送原始主机--强制
如果您无法删除这些文件,因为它们有暂存的更改,请使用:
git rm --cached -f *.DS_Store
排名靠前的答案很好,但帮助像我这样的新手,下面是如何创建.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已被驱逐!’
打开终端并键入“cd<ProjectPath>”
删除现有文件:查找-name.DS_Store-print0|xargs-0 git rm-f--忽略取消匹配nano.git忽略添加此.DS_Store键入“ctrl+x”类型“y”输入以保存文件git-add.gitignoregitcommit-m'.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
推荐文章
- 如何在交互式Python中查看整个命令历史?
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 在OSX中永久设置PATH环境变量
- 从GitHub克隆项目后拉git子模块
- 如何停止mysqld
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?