如何从Git存储库中删除那些烦人的Mac OS X.DS_Store文件?
当前回答
初始化存储库时,跳过包含
-u
这不应该是个问题。
其他回答
如果要将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
删除忽略的文件:
(.DS_Store)
$ find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
有时.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
步骤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 rm--缓存-f*.DS_Store$gitcommit-m“过滤器分支--索引过滤器'git rm--缓存--忽略取消匹配.DS_Store“$git推送原始主机--强制
推荐文章
- 如何在交互式Python中查看整个命令历史?
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 在OSX中永久设置PATH环境变量
- 从GitHub克隆项目后拉git子模块
- 如何停止mysqld
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?