在
Xcode中,我注意到.DS_Store和* .xcuserstate总是改变,不需要被提交.所以,我写了一个包含以下内容的.gitignore文件:
.DS_Store *.xcuserstate
其他条目.然后我用:
git rm --cached *xcuserstate git rm ---cached .DS_Store
删除已经在版本控制下的这些文件类型.但是,当我去合并Xcode告诉我有需要提交的变化.这些更改包括.DS_Store文件和.xcuserstate文件.
所以,我试过这个:How Can I Remove .DS_Store Files From A Git Repository?
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch find . -name *.xcuserstate -print0 | xargs -0 git rm --ignore-unmatch
解决方法
将其从分段区域中删除后,您需要提交更改.
正如你已经,运行:
$git rm --cached path/to/.DS_Store $git rm --cached *.xcuserstate
请注意,您可能在其他目录中有其他目录,因此您可能需要多次调用才能将它们全部收录.此时,您的删除将在索引中进行,但还有更多要做:添加.gitignore,并提交最终结果:
$git add .gitignore $git commit -m "Remove and ignore .xcuserstate and .DS_Store files."
现在他们将被从存储库中删除,并在将来被忽略.注意:这将删除其他人的文件,即使您在本地使用git rm –cached.不幸的是,你可以做的不多,此外,这些文件仍然在您的历史记录中,因此根据您所做的操作,您可能会在其他分支中看到它们,直到合并,并且所有分支都基于具有新提交的内容.