将文件存储在每个文件夹和子文件夹中

我已经将.DS_Store添加到.gitignore文件,但它似乎只忽略了根目录中的.DS_Store,而不是每个文件夹和子文件夹中的.DS_Store。

我该如何解决?


我认为你遇到的问题是,在一些早期的提交中,你不小心将.DS_Store文件添加到存储库。 当然,一旦在存储库中跟踪了一个文件,即使它与可用的.gitignore文件中的条目相匹配,也会继续跟踪它。

您必须手动删除添加到存储库的.DS_Store文件。 你可以使用git rm --cached .DS_Store 。 一旦删除,git应该忽略它。 您应该只需要在根.gitignore文件中包含以下行: .DS_Store 。 不要忘记这段时间!

git rm --cached .DS_Store只从当前目录中删除.DS_Store 。 你可以使用find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch从存储库中删除所有.DS_Stores

毡尖:因为你可能永远不想包含.DS_Store文件,所以制定一个全局规则。 首先,在某处创建一个全局.gitignore文件,例如echo .DS_Store >> ~/.gitignore_global 。 现在告诉git将它用于所有存储库: git config --global core.excludesfile ~/.gitignore_global

此页面帮助我回答您的问题:https://help.github.com/articles/ignoring-files


**/.DS_Store添加到子目录的.gitignore


如果.DS_Store已经提交:

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch

要在所有存储库中忽略它们(有时它命名为._.DS_Store

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

你的.gitignore文件应该如下所示:

# Ignore Mac DS_Store files
.DS_Store

只要不包含斜杠,它就会与所有目录中的文件名相匹配。 (从这里)

链接地址: http://www.djcxy.com/p/45167.html

上一篇: Store files in every folder and subfolder

下一篇: .gitignore a folder content