2014-01-07 53 views
15

在Xcode 5.0.2中,我尝试从远程中获取以下消息:Xcode:“工作副本____具有未提交的更改”与git状态:“没有提交,工作目录干净”

“工作副本'project-name'有未提交的更改。提交或放弃更改并重试。”

不够公平。我拉起提交对话框,然后给出消息“该文件不存在于请求的修订版本中”。点击'OK'将我带入提交对话框。 (在右窗格中没有显示修订版本,大概是出于同样的原因,我收到了最新的消息。)选择平面视图,我看到只有一个修改后的文件:project.pbxproj。我输入一个提交消息,然后单击'提交1文件'。当我去拉时,我发现我的位置和以前完全一样 - 同样的信息出现,无论我做了多少次提交,我都无法拉(或推)。

好奇,我跑git diff只是发生了什么变化。没有。 git status为我提供了同样有用的输出:nothing to commit, working directory cleangit pushgit pull?是的,那些从命令行工作得很好。

那么是什么给?为什么Xcode坚持我的工作目录有变化?为什么不告诉我他们是什么?已尝试重新启动Xcode和系统。虽然我很高兴我仍然有一些的方式来推动和拉动,如果Xcode git集成行为很好,这将是非常好的。有任何想法吗?

我发现这些类似的问题,但没有解决这个特定的问题(或者提供可接受的解决方案):

+1

一会的git'复位--hard'帮助吗? (如果您的工作树中没有任何私人文件) – VonC

+1

@VonC没有区别。 – GarlicFries

+0

我在Xcode 5上也遇到了这个完全相同的问题。我希望有办法解决这个问题。我需要切换回当地的分行才能继续发展。 – Tander

回答

39

好的,所以我解决了我的问题。

和Xcode开:

  1. 打开终端 - CD /项目目录。
  2. 键入: “git reset --hard
  3. 键入git status

重新启动Xcode和作出承诺(只是评论或东西)

重复上述步骤。

这整理了我的问题给我。

+0

谢谢,@Tander。正如在问题的意见中提出的那样,但是,这并没有解决我的问题... – GarlicFries

+0

为我工作,谢谢。 fyi,第2步应该是“git”而不是“get”(由于6字符更改要求,我无法编辑?)。 – Symmetric

+0

谢谢我纠正了这一点。很高兴它对你有效。 – Tander

3

你必须用命令行git修复它。转到终端,键入您的工作文件夹:

git status 

会告诉你哪些文件提交的更改。例如,Crashlytics会在您运行它时立即更新自己,甚至使用Xcode/Source Control/Discard Changes也不会摆脱它。

一旦你看到有未提交的更改(忽略添加的文件)的文件,使用:

git checkout -- Folder/filename.ext 

这是一样的Xcode的“抛弃”。

完成之后,返回到Xcode,您应该可以切换分支。

0

应用程序代码的解决方案:在终端

  1. 确认git的状态:

    git的状态

  2. 公开赛在App Code

  3. VCS>的Git>分行 'yourProject.xcworkspace' ...

  4. 远程分支> yourBranch>结帐新的本地分支

  5. 确认修正通过终端:

    git的状态

相关问题