【问题标题】:Xcode keeps committing DerivedData folderXcode 不断提交 DerivedData 文件夹
【发布时间】:2011-10-20 12:33:03
【问题描述】:

如何从我的 Xcode 存储库中删除 DerivedData 文件夹,以及如何永久阻止它包含在提交中?

Xcode 3 没有这个问题。从 Xcode 4.1 开始。

解决方案

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch DerivedData/'(用于文件夹)

git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename_here'(用于文件)

【问题讨论】:

  • 感谢您的解决方案。但是,需要注意的一件事是,它会遍历所有提交历史并重新制作它们,这会导致 git 历史重复,这有点烦人。

标签: git xcode4


【解决方案1】:

如果您想从以前的历史记录中删除该文件夹,您可以按照Github's 指南删除敏感数据。

如果你只是想从这里删除它,你可以从 repo 中删除它
git rm -r --cached folderName/

然后,将以下行添加到名为 .gitignore 的文件中根目录
folderName

【讨论】:

  • 不。仍然一直说不匹配任何文件。但我在 Xcode 存储库中看到了提交..
  • 你确定他们在里面吗?如果你这样做git ls-files。它是否显示 DerivedData 文件夹中的文件?
  • 它没有。但是,当我显示 Xcode 的版本时,它会显示它们已删除。 (我删除了 DerivedData 文件夹并将其移至默认位置。现在将它们显示为 D。但是,所有旧更改仍在 repo 中。我可以浏览所有以前的更改。基本上,我在查看时会看到它们Xcode 存储库的“历史”部分。我还可以查看所有更改...这意味着它们仍在存储库中。
  • 如果您想删除它们,就好像它们从未存在于您的存储库中一样,请按照我链接的 github 指南进行操作。但是如果它们不在git ls-files 中,git 将不再跟踪它们。
【解决方案2】:

您的派生数据仓库在哪里?它通常在 ~/Library/Developer/Xcode/DerivedData 除非您覆盖此默认位置,否则它不应自动提交。

【讨论】:

  • 我将我的 DerivedData 信息放在我的项目文件夹中。有没有办法从 git 的提交中删除文件夹并在将来忽略它?
  • 是的,你需要一个 .gitignore 文件。这里是一个示例模板github.com/github/gitignore/blob/master/Objective-C.gitignore 你可以在这里阅读更多关于 gitignore 的信息kernel.org/pub/software/scm/git/docs/gitignore.html
  • 但是如何从我的仓库中删除已经缓存的 DerivedData?我正在尝试git rm --cached DerivedData,但它说的是DerivedData' did not match any files
  • 不要使用 --cached。它用于从索引中删除。如果它说没有匹配的文件,则可能没有。您确定将其添加到 repo 中吗?
  • --cached 会将其从索引中删除,但不会从工作目录中删除。我不知道该文件夹的用途,但如果您想保留该文件夹,而不是跟踪它,请使用--cached。如果要删除该文件夹,请将其关闭。
猜你喜欢
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 2022-07-06
  • 2021-10-12
  • 2016-11-06
  • 2021-12-31
  • 2019-04-30
相关资源
最近更新 更多