由于未跟踪的工作树文件,导致git分支检出出现问题

9

我以为我已经把Xcode和git的问题放在了身后。看来不是这样的。当我尝试切换到另一个分支时,我遇到了这个git错误。

error: The following untracked working tree files would be overwritten by checkout:
    RCAlpha.xcodeproj/project.xcworkspace/xcuserdata/andrewjl.xcuserdatad/UserInterfaceState.xcuserstate
    RCAlpha.xcodeproj/xcuserdata/andrewjl.xcuserdatad/xcschemes/RCAlpha.xcscheme
    RCAlpha.xcodeproj/xcuserdata/andrewjl.xcuserdatad/xcschemes/xcschememanagement.plist
Please move or remove them before you can switch branches.
Aborting

好的,让我来删除这些文件:

andrewjl$ git rm --cached RCAlpha.xcodeproj/project.xcworkspace/xcuserdata/andrewjl.xcuserdatad/UserInterfaceState.xcuserstate
fatal: pathspec 'RCAlpha.xcodeproj/project.xcworkspace/xcuserdata/andrewjl.xcuserdatad/UserInterfaceState.xcuserstate' did not match any files

目前,我不确定该怎么办。这些文件都在我的.gitignore中列出,并且我也尝试过运行git clean -f -d命令。可惜没有起作用。有人知道这里发生了什么吗?

5个回答

9
文件未被跟踪:git rm --cached无法找到它们,因为它们不在索引中。只需使用文件管理器或rm删除它们即可。然后,checkout应该按预期工作。请注意,git status会显示Git如何看待这些文件(已跟踪、已更改、未跟踪;使用附加选项还会显示被忽略的文件)。

5

它们不在git中,但是存在本地。这意味着当您切换时,这些内容将会丢失,并且Git不允许这种情况发生。

在本地删除它们:

rm RCAlpha.xcodeproj/project.xcworkspace/xcuserdata/andrewjl.xcuserdatad/UserInterfaceState.xcuserstate RCAlpha.xcodeproj/xcuserdata/andrewjl.xcuserdatad/xcschemes/RCAlpha.xcscheme RCAlpha.xcodeproj/xcuserdata/andrewjl.xcuserdatad/xcschemes/xcschememanagement.plist

它们无论如何都会被Xcode重新创建。那里没有重要的东西!


那么我怎样才能把它找回来呢?我已经将其删除了,现在无法从另一个分支中拉取。 - Anirudha Mahale

2
尝试一下:
git rm --cache */xcschemes/xcschememanagement.plist
git commit -m "Good bye xcschememanagement.plist"

1

Git stash 和 git checkout "你的分支"


我尝试了,但不幸的是在这种情况下将没有本地更改可隐藏。 - user1162328

0
git clean -f

帮我解决这个问题,当运行清理时,它们是未跟踪的文件,会被删除。


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