.gitignore无法忽略目录

11

我试图忽略xcode 4修改的xcuserdata文件夹,尽管已经在我的.gitignore文件中写入,但它们仍然会不断出现。

我的.gitignore文件只有一行:

xcuserdata

但是一旦我在Xcode中更改任何UI,就会出现这种情况:

#   modified:   XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate

我已经完成了一个使用Python编写的脚本,通过网络抓取网页并将其转换为PDF格式。但是其中一些页面在转换过程中出现了问题,它们只会显示一个空白的PDF文件而不是正确的内容。我该如何解决这个问题?

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate

...尝试并尝试了...

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata

我已经尝试了近10次,每次都执行了git rm命令,然后提交更改,但是文件似乎无法被忽略。它不断地重现在我的版本库中。

我做错了什么?显然有些东西我没有理解。当我第一次创建这个文件时,确实将其添加到了版本库中,现在我想要摆脱它。

我只想让这个文件完全取消跟踪,就像它从未被添加到版本库中一样。

3个回答

20

完成某个动作之后

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata

检查git status是否告诉你该文件夹下的文件已被删除。然后在提交后,确保git说没有需要提交的内容。

你已经做了这个操作“10次”,但它仍然显示为修改过的,这表明你没有做对,该文件夹(实际上是其中的文件)仍然被跟踪。

除此之外,.gitignore的内容似乎没问题,我甚至在我的repo上确认它有效。


我想我知道出了什么问题。由于文件已经被修改,因此还没有对其进行“添加”,因此“rm”后跟的“commit”无法执行。虽然不是100%有意义,但一旦我在xcode修改文件之前就对其进行操作,一切都可以正常工作。 - Roger Gilbrat

2
如果你因为 UserInterfaceState.xcuserstate 被修改而无法推送你的提交,这里有一个快速解决方法:
  1. 打开 Organizer,转到 Repositories,复制你的提交代码(类似于 f01a2147218d by username
  2. 打开终端,进入你的项目文件夹,输入 git reset --hard f01a2147218d
  3. 推送提交!

-3
尝试在 .gitignore 文件中添加 xcuserdata/。

试了,没有任何区别。 - Roger Gilbrat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接