我有一个本地git存储库,我在Xcode 4中设置了一个项目。存储库在Organizer中显示正常,我可以在File Navigator中看到提交历史和源代码控制图标。提交工作也很好。但是,当我使用版本编辑器时,每当我尝试查看任何以前的版本时,我都会收到错误“此文件在请求的修订版本中不存在”。我找不到有关此错误的任何信息,也不知道如何修复。 git log
显示了最近的四次提交(我知道还有更多提交,但我不知道这是否是对命令的限制或者某些事情是否正在消失)。有什么想法吗?
答案 0 :(得分:15)
我刚遇到同样的问题。我认为(无论如何),这与我将项目目录移到xcode之外的事实有关。我相信xcode已经在〜/ Library中缓存了一些索引文件。他们似乎已经被这一举动纠缠在了一起。
修复(对我而言)是打开xcode,打开组织者 - >项目窗格并找到有问题的项目。删除派生数据(右上方窗格中有一个按钮)。
在此之后,一切似乎都很好。
答案 1 :(得分:9)
这对我有帮助:
file://....<full path, which contains the .git directory>
。确保将Type设置为“Git”,Xcode将其更改为“Subversion”,忽略消息“Authentication required”答案 2 :(得分:3)
我在类名中更改了case时遇到了这个问题。 Git有一个小写字母,我想要大写。我尝试了许多以上完全重建存储库的东西。我终于简单地从项目中删除了类,稍微更改了名称然后重新添加它。
答案 3 :(得分:1)
我猜这是可能由多个问题引起的这些问题之一。这是我的,我是如何解决它的。
我的项目正在进行一些文件系统名称更改。即,从所有下盖移动到Pascal外壳。这在我的编码周期中的某个时刻得到了退出。当我签入时,文件系统是:
mydirectoryname
mydirectoryname
下的所有文件不再由Xcode下的git管理。在版本编辑器下查看时,我最终得到“此文件在请求的版本中不存在”错误消息。
但是,如果我选择了其中一个文件并单击了文件检查器(在“工具”窗格中可用),我发现完整的文件路径列为:
MyRootPath/MyDirectoryName/TheCodeFile.h
我关闭了Xcode,在编辑器中打开了.pbxproj文件,修复了路径,然后重新打开了项目。 Git集成再次发挥作用。
答案 4 :(得分:1)
事实证明,在我的情况下,这个问题与我在我的存储库中重命名了很多文件这一事实有关。来自&#34; CamelCase&#34;到&#34;小写&#34;,包括我的项目文件和文件夹。这肯定是以某种方式在某处不正确地跟踪的。
默认情况下,OS X使用不区分大小写的文件系统,而git在内部区分大小写,我相信这个问题与此有关。
这些是我用来解决这个问题的步骤。如果您认为您的问题可能是由于更改了文件名的情况,这也可能对您有帮助。
现在你的生活应该会更好,Xcode也应该表现得很好,因为git现在看到与Xcode项目完全相同的文件(具有完全相同的情况)。
答案 5 :(得分:1)
我的问题和解决方案很简单:
解决方案:
答案 6 :(得分:0)
我在今天早些时候的一个相对较新的项目中使用Xcode 4.2遇到了同样的错误。
我最初通过将repo克隆到兄弟目录来解决这个问题。在终端:
> cd /path/to/XCodeProject
> mkdir ../Clone
> cd ../Clone
> git clone ../XCodeProject/.git .
但是,当我删除原始项目并将新目录重命名为同名时,问题再次出现。
最后,解决方法只是找到我的.xcodeproj和.git文件,并为父目录指定一个不同的名称。
答案 7 :(得分:0)
据我所知,这是由于Xcode 4.3目前无法正确处理的冲突。 同样严重的同步.DS_Store我也有类似的问题。我手动删除了它并陷入了类似的情况。
然后我必须使用命令行手动解决问题:
如果您遇到拉动,提交和推送,通过Xcode,您应该能够再次调用它们。此外,由于双方应该正确同步,您的错误“此文件在请求的修订版本中不存在”也将消失。如果这对您有用,请评论。
答案 8 :(得分:0)
有同样的问题。
通过在管理器的“项目”页面中选择项目并通过按下这些字段的“删除...”按钮删除“派生数据”和“快照”数据来解决。
在此之后,可以在必要时成功创建和导出新快照。
答案 9 :(得分:0)
这是一个古老的线索,但由于从未找到正确的答案,我将投入2美分。
此错误的一个原因可能来自未跟踪的文件,特别是来自子模块或当前分支中不存在但前一个分支中的文件。
例如,当您切换到具有子模块的分支并更新此类子模块时,它会将这些文件同步到您的存储库。当你以后切换到没有这种子模块的分支时,它不会自动添加或删除它们,但是git会意识到分支中没有跟踪某些东西。每当您切换到任何版本编辑器模式时,XCode都会检测到这一点:log,blame或comparison。
如果是这种情况,git状态提示将产生未跟踪的文件:
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
yourSubmodule/
nothing added to commit but untracked files present (use "git add" to track)
要解决此问题,您只需使用 rm 删除未跟踪的文件,因为这些文件不属于此分支,可以从实际指向子模块的分支同步。请注意,这是子模块的情况,但如果您确实有新文件,则应将它们添加到存储库中,或者将它们添加到忽略列表中。解决问题后,git status应该是干净的:
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
了解submodules和issues with their usage。
干杯!
答案 10 :(得分:0)
创建并重命名新文件后,我收到了相同的消息。当我在Git提交窗口中选择文件时出现此消息。删除并重新添加文件解决了问题。
答案 11 :(得分:-1)
仍然没有答案;无论如何,我不得不对项目做一些重大改动,所以我开始了一个新项目。一切都很好。
答案 12 :(得分:-1)
我遇到了同样的问题。这是因为编辑器模式是“显示版本编辑器”。确保它显示在“显示标准编辑器”或“显示助理编辑器”中。它位于Xcode的右上方区域,旁边是“View”和“Organizer”。
答案 13 :(得分:-1)
我在项目中的某个特定文件中发生了这种情况。所有其他人都工作正常。从我添加它时,此文件从未正常工作,在执行任何操作时总是给出“文件在请求的版本中不存在”错误,包括最令人讨厌的保存它!我尝试将其从存储库中删除并重新添加它。相同。最终工作的是从命令行执行“git add”和“git commit”。转到存储库的根目录(包含.git文件夹的目录),运行“git add”(即使看起来它应该已经存在!)然后“git commit”。这为我修复了它,文件现在在Xcode中很开心。
答案 14 :(得分:-1)
我有这个问题 - 我通过以下方式解决了这个问题: 删除管理器中的存储库
项目目录中的终端提示
ls -A - sheck for .git repo files - 不应该是 - 但是如果有rm -R .git
然后设置新的git repo
git init git add。 git commit -m“initial rev”
然后当我重新打开xcode时 - 项目是在git源代码控制下