我怎样才能消除这些恼人的Mac OS X .DS_Store
从Git仓库的文件?
Answer 1:
从仓库里面删除现有的文件:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
添加行
.DS_Store
该文件.gitignore
,它可以在你的仓库顶层发现(或创建如果它不存在的话)。 您可以在顶级目录用这个命令很容易做到这一点
echo .DS_Store >> .gitignore
然后
git add .gitignore
git commit -m '.DS_Store banished!'
Answer 2:
结合benzado和webmat的答案,用更新git rm
,没有失败就发现不在回购的文件,并使其粘贴,一般能够对任何用户:
# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore
Answer 3:
解决这个问题最好的解决方法是从你的系统中所有的git回购全球忽略这些文件。 这可以通过创建像全球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 config --global core.excludesfile ~/.gitignore_global
编辑:
删除图标,因为他们可能需要提交的申请资产。
Answer 4:
在某些情况下,你可能还需要在全球范围内忽略了一些文件。 对我来说,.DS_Store就是其中之一。 这是如何做:
git config --global core.excludesfile /Users/mat/.gitignore
(或您选择的任何文件)
然后编辑该文件就像一个回购的的.gitignore。 请注意,我认为你必须使用绝对路径。
Answer 5:
如果您无法删除文件,因为它们有变化上演用途:
git rm --cached -f *.DS_Store
Answer 6:
我不得不改变的git-RM与git在上面RM得到它的工作:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
Answer 7:
开放端和类型“CD <ProjectPath>”
删除现有的文件:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
收藏此
.DS_Store
类型 “CTRL + X”
键入“Y”
输入保存文件
git add .gitignore
git commit -m '.DS_Store removed.'
Answer 8:
热门投票的答案是真棒,但帮助了像我这样的新手,这里是如何创建的.gitignore文件,编辑,保存,删除你可能已经加入到git的文件,然后将文件向上推Github上。
创建的.gitignore文件
要创建的.gitignore文件,你可以touch
它创建具有指定名称的空文件的文件。 我们要创建一个名为的.gitignore所以我们可以使用该命令的文件:
touch .gitignore
忽略文件
现在,你必须添加告诉混帐到DS存储文件忽略你的.gitignore行。 您可以使用纳米编辑器来做到这一点。
nano .gitignore
Nano是不错的,因为它包含了如何摆脱它的指令。 ( 按Ctrl - Ø保存, 按Ctrl - X退出)
复制并粘贴一些从这个思路Github的要点 ,其中列出了一些常见的忽略文件。 其中最重要的,要回答这个问题,应该是:
# OS generated files #
######################
.DS_Store
.DS_Store?
该#是注释,并会帮助你组织你的文件,因为它的增长。
这Github上的文章也有一些总体思路和指导方针。
删除的文件已经加入到Git的
最后,你需要真正从目录中删除那些DS存储文件。
从上投答案使用这个伟大的命令。 这将通过您的目录中的所有文件夹,并从混帐删除这些文件。
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
推的.gitignore高达Github上
最后一步,实际上你需要提交您的.gitignore文件。
git status
git add .gitignore
git commit -m '.DS_Store banished!'
Answer 9:
删除它们使用git-rm
,然后添加到.DS_Store .gitignore
阻止他们再被添加。 您还可以使用blueharvest阻止他们得到创建的所有一起
Answer 10:
使用此命令删除现有的文件:
find . -name '*.DS_Store' -type f -delete
然后加入.DS_Store
到.gitignore
Answer 11:
下面的工作最适合我。 处理无与伦比的文件和文件的局部修改。 作为参考,这是运行git 1.7.4.4在Mac 10.7系统上。
查找并删除:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f
我还通过全球设置全局core.excludesfile忽略.DS_Store跨越所有存储库。
首先,创建文件(如果不存在的话):
touch ~/.gitignore
然后添加以下行并保存:
.DS_Store
现在配置的git尊重全球的文件:
git config --global core.excludesfile ~/.gitignore
Answer 12:
如果你想删除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
Answer 13:
我发现,从下面的行snipplr做得最好擦上所有.DS_Store
,其中包括有本地修改。
find . -depth -name '.DS_Store' -exec git-rm --cached '{}' \; -print
--cached
选项,让您的本地.DS_Store
因为它会被复制反正。
而且就像所有上面提到的,添加.DS_Store
到的.gitignore对项目的根文件。 然后,它会不会再在你眼前(的回购)。
Answer 14:
我有点迟到了,但我有一个很好的答案。 要删除.DS_Store文件,从终端窗口中使用下面的命令,但必须非常小心删除与“发现”的文件。 使用一个特定的名字与-name选项是更安全的方式来使用它之一:
cd directory/above/affected/workareas
find . -name .DS_Store -delete
可以去掉了“-delete”如果你想之前和之后简单地列出来。 这将您保证,他们走了。
关于〜/ .gitignore_global建议:这里要小心。 你想将那该多好文件到各的.gitignore工作区的顶层内提交,使任何人谁克隆你的回购将获得其使用效益。
Answer 15:
这将工作:
find . -name "*.DS_Store" -type f -exec git-rm {} \;
它会删除其名称以结尾的所有文件.DS_Store
,包括._.DS_Store
。
Answer 16:
对于没有上述的一些原因,曾在我的Mac。
我的解决方案是从终端运行:
rm .DS_Store
然后运行以下命令:
git pull origin master
Answer 17:
当初始化存储库,跳过包含git的命令
-u
它不应该是一个问题。
Answer 18:
这个工作对我来说,组合两个答案的上面:
- $ git的RM --cached -f * .DS_Store
- $ git的承诺-m “滤波器分支--index过滤器“的git RM --cached - 忽略UNMATCH .DS_Store”
- $ git的推动起源主--force
Answer 19:
$ git commit -m "filter-branch --index-filter 'git rm --cached --ignore-unmatch .DS_Store"
$ git push origin master --force
Answer 20:
有解决这个问题的几个解决方案。 为了避免创建.DS_Store文件时,不要使用OS X的Finder查看文件夹。 以查看文件夹的另一种方法是使用UNIX命令行。 要删除.DS_Store文件可以使用一种叫做DS_Store终结者第三方产品。 若要从整个系统可以使用UNIX shell命令的.DS_Store文件。 启动终端从应用:公用事业在UNIX shell提示符下输入以下UNIX命令:sudo的查找/ -name “.DS_Store” -depth -exec RM {} \; 当提示输入密码进入Mac OS X的管理员密码。
这个命令是为了找到并移除.DS_Store的所有出现从文件系统的根目录(/)通过整个机器开始。 要配置此命令运行一个计划任务按照以下步骤:从应用程序启动终端:公用事业在UNIX shell提示符下输入以下UNIX命令:
须藤的crontab -e提示输入密码进入Mac OS X的管理员密码。 一旦在vi编辑器按键盘上的字母我一次,输入以下命令:
15 1 * * *根查找/ -name “.DS_Store” -depth -exec RM {} \;
这就是所谓的crontab条目,其格式如下:
分钟小时DAYOFMONTH月DAYOFWEEK用户命令。
crontab条目意味着该命令将被由系统自动在每天上午1:15通过调用根帐户执行。
从命令开始寻找一路。 如果系统没有运行该命令将不会得到执行。
要保存条目按Esc键一次,然后同时按下Shift键+ Z + Z。
注:在步骤4的信息仅用于vi编辑器。
Answer 21:
添加到您的文件的.gitignore
#Ignore folder mac
.DS_Store
保存此做出承诺
git add -A
git commit -m "ignore .DS_Store"
现在你忽略这个所有提交
Answer 22:
删除或忽略的文件:
(.DS_Store)
$ find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch