0

在 Xcode 4.6 下,git status 的行为非常不稳定。这是新提交后的示例(例如终端中的“git status”显示没有更改):

  1. 我修改了一个文件,所以“M”出现在边栏中。
  2. 我转到“文件-> 源代码管理-> 刷新状态”,然后“M”消失了!
  3. 我转到“文件-> 源代码管理-> 刷新状态”,然后“M”又出现了!

根据需要重复步骤 2 或 3。总是刷新“M”和“no-M”之间的选择。这可能是什么原因造成的?有什么想到的吗?

我可以以某种方式调试它以跟踪可能发生的情况吗?

我尝试删除整个 DerivedData,清除 Organizer 中的存储库,然后重新启动 Xcode,但没有任何帮助。

4

2 回答 2

0

类似的事情发生在我身上,我继续提交,然后“M”消失,几秒钟后,它重新出现,如果我再次尝试提交,它允许我再次提交,但所有文件显示零更改。然后M消失并再次出现。

我发现解决此问题的唯一方法是奇怪地在代码中插入注释然后提交。M应该消失。

于 2013-02-22T14:29:28.813 回答
0

就我而言,事实证明,这个问题与我将存储库中的许多文件从“CamelCase”重命名为“小写”这一事实有关,包括我的项目文件和文件夹。这一定是在某个地方被不恰当地跟踪了。

OS X 默认使用不区分大小写的文件系统,而 git 在内部是区分大小写的,我相信问题与此有关。

这些是我用来解决此问题的步骤。如果您认为您的问题可能是由于更改了文件名的大小写,这也可能对您有所帮助。

  1. 转到存储库的根目录,然后使用“ls -la”(也可以查看所有隐藏文件)和“rm”/“rm -rf”命令从其中删除除 .git 文件夹之外的所有内容。
  2. 执行“git reset --hard”以取回所有文件。您现在可能会看到文件名的大小写已更改。就我而言,在我的工作副本的根目录中,“myapp.xcodeproj”和“myapp”(包含所有代码文件的文件夹)已更改为“MyApp.xcodeproj”和“MyApp”(文件夹)。我以为我已经把它改成了小写,但显然,这并没有被 git 正确跟踪。
  3. 现在,将您的文件重命名为不相关的名称。例如,我将“MyApp.xcodeproj”重命名为“foo.xcodeproj”,将“MyApp”重命名为“foo”。
  4. 然后执行“git add --all”
  5. 现在,将您的文件重命名为您想要的名称。我将“foo.xcodeproj”重命名为“myapp.xcodeproj”,将“foo”重命名为“myapp”,这就是我希望它开始的方式(以及我认为我已经完成的方式)。
  6. 再做一次“git add --all”。
  7. 犯罪。

现在你的生活应该会更好,Xcode 应该表现良好,因为 git 现在看到的文件与 Xcode 项目完全相同(具有完全相同的大小写)。

于 2013-02-22T21:16:38.673 回答