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

Gar*_*ies 25 git xcode

在Xcode 5.0.2中,我尝试从远程拉出来,并给出以下消息:

"工作副本'项目名'有未提交的更改.提交或放弃更改,然后重试."

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

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

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

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

Rob*_*egg 60

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

打开Xcode:

  1. 打开终端 - cd /到您的项目目录.
  2. 输入:" git reset --hard"
  3. 输入 git status

重启Xcode并进行提交(只是评论或其他)

重复上述步骤.

这为我解决了我的问题.

  • @Kqtr没问题-令人惊讶的是,四年之后,这仍然是最新版本的Xcode中的问题。 (4认同)
  • 就我而言,“git reset --hard”步骤足以解决问题。谢谢@Tander (2认同)

Mat*_*t H 5

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

git status
Run Code Online (Sandbox Code Playgroud)

这将向您显示哪些文件具有未提交的更改。例如,当您运行Crashlytics时,它便会自动更新,甚至使用Xcode / Source Control / Discard Changes也不会摆脱它。

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

git checkout -- Folder/filename.ext
Run Code Online (Sandbox Code Playgroud)

这与Xcode中的“丢弃”相同。

完成之后,回到Xcode,您应该能够切换分支。