如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
这对我很有用,上面有两个答案:
$git rm--缓存-f*.DS_Store$gitcommit-m“过滤器分支--索引过滤器'git rm--缓存--忽略取消匹配.DS_Store“$git推送原始主机--强制
其他回答
解决此问题的最佳解决方案是全局忽略系统上所有git repo中的这些文件。这可以通过创建一个全局gitignore文件来完成,如:
vi ~/.gitignore_global
添加忽略文件的规则,如:
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
现在,将此文件添加到全局git配置中:
git config --global core.excludesfile ~/.gitignore_global
编辑:
删除了图标,因为它们可能需要作为应用程序资产提交。
我做了:
git checkout -- ../.DS_Store
(#将本地更改(永久)丢弃到文件)而且效果很好!
在某些情况下,您可能还需要全局忽略某些文件。对我来说,.DS_Store就是其中之一。以下是操作方法:
git config --global core.excludesfile /Users/mat/.gitignore
(或您选择的任何文件)
然后像repo的.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已被驱逐!’
使用touch.gitignore命令创建.gitignore文件
并在其中添加以下行
.DS_Store
保存.gitignore文件,然后将其推送到git repo中。
推荐文章
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 我如何确定文件编码在OS X?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 错误:无法在ARM处理器上的Homebrew中安装英特尔默认前缀(/usr/local)
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- 在Mac OS X上哪里安装Android SDK ?
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据