【问题标题】:Git pull error: unable to create file (Invalid argument)Git pull错误:无法创建文件(无效参数)
【发布时间】:2014-11-23 17:00:05
【问题描述】:

我正在尝试将远程仓库与本地仓库同步,​​但出现以下错误。某些文件(没有扩展名)没有与 WINDOWS 机器上的本地 repo 同步,但我可以在 MAC 机器上成功同步。

WINDOWS中是否有任何配置设置来处理这种情况?

  1. 使用 TortoiseGit
  2. Windows 7 64 位机器

错误详情

git.exe clone     --progress -v  "https://github.com/xxxx/xxxxx.git" "C:\Data\GitHub\simility\vishesh-common"

Cloning into 'C:\Data\GitHub\simility\vishesh-common'...
POST git-upload-pack (200 bytes)
remote: Counting objects: 3912, done.
remote: Compressing objects: 100% (487/487), done.
Receiving objects: 100% (3912/3912), 2.70 MiB | 567.00 KiB/s, done.
Resolving deltas: 100% (1578/1578), done.
remote: Total 3912 (delta 409), reused 0 (delta 0)
Checking connectivity... error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030050305_fantasy-trilogy-spin?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030295038_laser-dogs?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_arizona-native-bird-painting-series?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_native-birds-ii?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard-0?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_only-you-can-prevent-computercide?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_vector-cupholder-protect-your-laptop-and-your-lap?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_103055429_death-of-an-angel?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030650665_rachel-vanslyke-making-a-new-record-together-we-ca?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030835091_russian-trucks-of-world-war-two?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-expansion-next-level?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-project-expansion?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099860912_yaw-clock?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099992656_heavenly-sight-a-vision-out-of-blindness?ref=users (Invalid argument)
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD'

git did not exit cleanly (exit code 128) (21746 ms @ 29-09-2014 13:32:13)

【问题讨论】:

    标签: windows git filenames tortoisegit


    【解决方案1】:

    我正在使用bitbucket,它具有删除问题文件的功能。

    这就是我的工作。

    1. 转到您的存储库。
    2. 选择菜单“提交”。
    3. 选择要删除问题文件的分支。
    4. 转到您的文件并单击它。您将到达显示文件详细信息的文件概述,例如您的代码、提交此文件的日期时间等。
    5. 看右上角,你会看到带有向下箭头的按钮(类似于字母v)点击它。
    6. 它将下拉并显示其中的重命名按钮和删除按钮。
    7. 然后,您可以选择重命名或删除它。明智地选择。
    8. 单击按钮后。 Bitbucket 将向您显示一个对话框,按照它所说的操作并使用提交按钮提交您的文件。
    9. 提交后,您可以返回到 sourcetree 并毫无问题地提取您的代码。
    10. 享受吧!

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但不愿意重命名或删除这些文件。所以这里有一个解决方法,以防你可以在不使用稀疏结帐访问这些文件的情况下生活:

      转到您的存储库中的.git 文件夹并打开文件config。 (你也可以使用 tortoise-git 来编辑你的配置,但是我这里没有安装它。)在 [core]section 添加行

      sparsecheckout = true
      

      然后转到文件夹.git/info 并创建文件sparse-checkout。添加类似的东西

      *
      !kickstarter/parsers/data/kickstarter/campaigndetails/*
      

      第一行包含所有内容,而第二行排除kickstarter/parsers/data/kickstarter/campaigndetails/ 中的所有文件。您现在应该可以签出 repo。使用通配符,您可能可以进行更复杂的排除。

      【讨论】:

      • 这行得通,虽然我后来发现这是一个权限问题。在我的 Windows 机器上,我不得不取消选中一些“只读”框,然后一切正常。
      • @minitauros 请解释一下取消选中某些“只读”框是什么意思?
      • 我不记得了,因为那是前一阵子了,但可能我的意思是您需要选择一些文件,右键单击,转到“属性”并取消选中“只读”框。
      【解决方案3】:

      如果我仔细阅读了该日志,这些文件的名称以“?ref=users”结尾

      Windows 不允许您使用“?”在文件名中,就像它不允许有“\”或“*”一样。在 Linux 下,如果您对这些字符进行转义,则有可能。在 Windows 上,我认为这根本不可能。见http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247

      你会很难用这样的名字。我实际上想不出任何可以让你 1:1 同步的想法。您当然可以获取它们并将它们保存在一些安全的名称下,例如 _projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users 但我不知道如何自动执行此操作,或者稍后如何通知 Git 该映射,抱歉..

      这些文件名看起来像是带有 HTML-query-parameters 后缀。真的需要吗?也许这只是一些可以移除的神器?尝试与项目的维护者交谈,也许他们可以简单地删除那个奇怪的后缀?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-18
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 2012-04-21
        • 2016-09-06
        • 2014-03-16
        相关资源
        最近更新 更多