【问题标题】:Xcode - error: pathspec '...' did not match any file(s) known to gitXcode - 错误:pathspec '...' 与 git 已知的任何文件都不匹配
【发布时间】:2015-02-04 04:55:18
【问题描述】:

我正在使用本地 git 存储库。当我尝试提交对核心数据模型文件 (.xcdatamodel) 的更改时,我收到以下消息:

error: pathspec '.../DataModel.xcdatamodeld/DataModel.xcdatamodel/contents' did not match any file(s) known to git.

如何解决这个问题并像处理任何其他文件一样提交模型?

【问题讨论】:

  • 您不需要对 git 采取任何特殊步骤来处理 Core Data 模型。它们甚至不是二进制的,因此可以像任何源文件一样提交、跟踪和区分它们。那个文件真的存在吗?之前是否已将其添加到 repo 中?
  • 文件存在且旁边有这个“M”指示符(已修改)。
  • 我有同样的问题(虽然不限于 xcdatamodel 文件)。这是最热门的,不是很有帮助。我希望我能在别处找到答案。
  • @MatthewBriggs 你找到了吗?
  • @AbdalrahmanShatou 不幸的是,我不记得我是如何解决这个问题的,而且我认为我没有找到关于这个问题的具体 Q/A。在这一点上我最好的猜测是我可能通过从命令行提交来解决这个问题。我的情况有点不同,因为我使用的是 github,我认为我实际上使用 github 进行了推/拉往返来解决问题。

标签: xcode git core-data


【解决方案1】:

Git 不喜欢源和目标只是大小写不同的重命名。 (特定于 Windows)请参阅 How do I commit case-sensitive only filename changes in Git? 寻求解决方案。

【讨论】:

    【解决方案2】:

    我通过删除本地项目存储库并重新创建它来解决此问题。

    删除您的本地 (Xcode) 和在线 (Github) 存储库并创建一个新存储库并将项目再次提交给它。

    要从项目中删除 git 存储库:

    1. 打开终端并粘贴此命令以在查找器中启用显示隐藏文件

      defaults write com.apple.finder AppleShowAllFiles TRUE
      killall Finder
      
    2. 打开项目文件夹,删除.git文件夹

    3. 重启 Xcode

    4. 现在创建一个新的 git 存储库并提交项目

    【讨论】:

      【解决方案3】:

      问题确实是文件名大小写的改变。对我来说,这是因为我的 Macbook/OSX。显然 Windows 也有同样的“东西”。

      原因: git 无法识别从“文件名”到“文件名”的更改。

      以下是针对遇到此问题的任何人的解决方案列表。所有解决方案都应该在项目根目录下运行:

      适用于当前和未来项目的永久修复

      更改 git case 设置。该文件应在之后提交

      git config core.ignorecase false --global
      

      项目仅修复

      git config core.ignorecase false
      

      只需给我一行代码,我就可以继续修复 - 归功于 Bruce

      git commit -a -m "pathspec did not match any file(s) known to git fix"
      

      我按小时获得报酬修复

      Delete the file. Commit. Push. Add the file again. Commit. Push.
      

      根据您的需要,您可能希望恢复设置。做:

      git config core.ignorecase true 
      

      【讨论】:

      • Git 阻塞文件名大小写是获取此错误消息的一种方法,但在我的情况下,Xcode 在其提交列表中有两个额外的文件并从命令行提交修复了它。当您对所有有此错误的人说“问题是什么”时,我认为您是不正确的。
      【解决方案4】:

      重命名情节提要文件后,我遇到了同样的问题。以下步骤为我修复了它-

      1. 清理(Shift + Command + K)
      2. 构建(Command + B)
      3. 提交

      不确定,但我认为可能是 git 持有对旧文件名的引用并清理构建文件夹并再次构建更正。

      【讨论】:

        【解决方案5】:

        我在使用 xcode 9.1 时遇到了同样的错误。 我通过终端手动提交解决了它。 步骤如下

        1. 移至您的项目文件夹/目录
        2. $ git status - 您将了解对项目所做的更改
        3. $ git add .
        4. $ git commit -m"你的消息"
        5. $ git push origin master

        一旦您从终端成功手动提交所有更改,您就可以在 xcode 中使用源代码管理。

        【讨论】:

          【解决方案6】:

          我做了人们建议的一切,但对我没有用。我尝试重新启动我的 MacBook,它成功了。

          【讨论】:

          • 也许它在重新启动后起作用因为您在重新启动之前已经应用了其他解决方案...
          【解决方案7】:

          我的重复解决方案是重新启动 Xcode 重新启动后,我之前将文件从“名称”重命名为“名称”,它以“名称”提交,但文件名在磁盘上仍为“名称”,但在 git 上为“名称”

          【讨论】:

            【解决方案8】:

            我只是通过关闭 XCODE 并再次打开它来解决问题。 我知道这不是一个很酷的解决方案,但它可以在我没有对任何文件进行任何更改的情况下工作。

            【讨论】:

            • 接受的答案对我有用——一次。之后有什么修改吗?没有。这个好像是最好的。我同意,这不是一个很酷的解决方案。也许下周(WWDC 2020)会更好地解决这个问题。
            • 效果很好!谢谢!
            【解决方案9】:

            我在 Xcode 中遇到了这个错误,刚刚重新启动 Xcode 然后再次提交。

            【讨论】:

              【解决方案10】:

              我是这样解决的:

              1. 使用终端(控制台)转到您的项目目录
              2. 执行命令:git status //这会显示未跟踪的文件
              3. 使用以下命令添加所有未跟踪的文件:git add -A
              4. 您可以使用 xcode 源代码管理提交,然后推送。

              【讨论】:

                【解决方案11】:

                这为我解决了问题。从您的项目中删除该文件。我把它拖到另一个文件夹。然后我删除了引用,清理了项目,然后构建了项目。

                然后提交并推送到您的 git。然后重新添加文件,然后再次提交。

                【讨论】:

                  【解决方案12】:

                  在我更改了我的一个文件的文件扩展名(将 .txt 更改为 .json)后,我在 Xcode 中遇到了这个错误。我通过右键单击该文件,选择Source Control -> Commit Selected Files... 并仅提交该文件来解决它。之后,我可以回到Source Control -> Commit(从菜单栏),其余文件都已成功提交。

                  【讨论】:

                    【解决方案13】:

                    这类似于 tf.alves 的答案,但通常我会这样做

                    git commit -a -m "comment"
                    

                    我发现如果我忘记了 -a 和 -m 参数,我会收到错误:上面提到的 pathspec 消息。

                    【讨论】:

                    • 添加“-a”选项后,我得到“致命:带 -a 的路径没有意义”
                    【解决方案14】:

                    我删除 .xcdatamodel 文件,提交,添加它并再次提交。不干净,但有效。

                    【讨论】:

                      【解决方案15】:

                      这不是解决问题的正确方法,但它是一种可能对其他人有所帮助的解决方法... 在您的终端中执行此操作:

                      git commit -m "<message>" <project dir>
                      

                      替换为您的消息,以及您的项目目录。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2022-10-12
                        • 1970-01-01
                        • 2013-06-01
                        • 1970-01-01
                        • 2015-08-28
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多