Xcode:“工作副本____有未提交的更改”与git状态:“无需提交,工作目录清理”

时间:2014-01-07 00:23:07

标签: xcode git

在Xcode 5.0.2中,我尝试从遥控器拉出,并给出以下消息:

“工作副本'项目名'具有未提交的更改。提交或放弃更改,然后重试。”

足够公平。我拉出提交对话框,然后给出消息,“此文件在请求的修订版本中不存在。”单击“确定”将进入提交对话框。 (右侧窗格中没有显示修订版,可能与我收到最新消息的原因相同。)选择平面视图,我看到只有一个修改过的文件:project.pbxproj。我输入一个提交消息,然后单击“提交1文件”。当我接着拉,我发现我和以前的位置完全一样 - 出现相同的消息,无论多少次提交,我都无法拉(或推)。

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

那是什么给出的?为什么Xcode坚持我的工作目录中有变化?为什么不告诉我它们是什么?尝试重启Xcode和系统。虽然我很高兴我仍然有一些推送和拉动的方式,但如果Xcode git集成表现良好,那将是非常好的。有什么想法吗?

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

4 个答案:

答案 0 :(得分:58)

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

打开Xcode:

  1. 打开终端 - cd /到您的项目目录。
  2. 输入:“git reset --hard
  3. 输入git status
  4. 重新启动Xcode并进行提交(只是评论或其他内容)

    重复上述步骤。

    这为我解决了我的问题。

答案 1 :(得分:5)

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

git status

这将显示哪些文件具有未提交的更改。例如,Crashlytics一旦运行就会自动更新,甚至使用Xcode / Source Control / Discard Changes也无法摆脱它。

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

git checkout -- Folder/filename.ext

这与" discard"相同在Xcode。

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

答案 2 :(得分:0)

应用代码解决方案:

  1. 在终端中确认git状态:

    git status

  2. App Code

  3. 中打开'yourProject.xcworkspace'
  4. VCS> Git>分支...

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

  6. 通过终端确认修复:

    git status

答案 3 :(得分:0)

xCode真的很烂。每次您查看文件时,都会更改一个名为UserInterfaceState.xcuserstate的文件。您可以通过命令行在xCode本身的概述中看不到它。

快速修复:

  1. 打开终端
  2. 将CD插入项目目录,然后键入以下内容:
  3. git add .
  4. git commit -m "Commit"
  5. git push origin master