我如何从一个Git仓库中删除.DS_Store文件?我如何从一个Git仓库中删除.DS_Store文

2019-05-14 15:43发布

我怎样才能消除这些恼人的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>”

  1. 删除现有的文件: find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

  2. nano .gitignore

  3. 收藏此.DS_Store

  4. 类型 “CTRL + X”

  5. 键入“Y”

  6. 输入保存文件

  7. git add .gitignore

  8. 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


文章来源: How can I Remove .DS_Store files from a Git repository?