【问题标题】:GIT pull failed: 'unable to unlink file: invalid argument'GIT pull 失败:'无法取消链接文件:无效参数'
【发布时间】:2017-07-26 19:33:18
【问题描述】:

这里是新的 GIT 用户,在 Windows 服务器上管理 Moodle 课程网站系统。尝试对核心代码进行第一次 Pull 更新(使用 TortoiseGit),但它不起作用。由于“无效参数”,Git 无法取消链接任何要更新的 200 多个文件的旧版本。我不知道那是什么意思。

这是我关闭 210 个错误对话框后的样子: tortoisegit

我已经重启了服务器并在网上搜索了一些想法,但我不知道下一步该尝试什么。

任何想法都会非常感激!

【问题讨论】:

  • 你检查过这个stackoverflow.com/questions/4452641/… 吗?
  • 在 Windows 上,当 git 抱怨无法“取消链接”文件时,这通常是由另一个程序锁定该文件引起的,阻止了任何其他写访问。尝试停止 Web 服务器服务,并关闭您认为可能与这些文件相关的任何其他应用程序。
  • 我停止了服务器但得到了相同的结果:无法取消链接。无法想象如果网络服务器没有其他程序可能会使用这些文件...
  • 我在 Windows 系统上也有这个。重新启动系统解决了这个问题。我认为有一些孤立进程保持文件锁定,但没有足够的权限以管理员模式运行 Process Explorer 来寻找它。
  • 由于某种原因 explorer.exe 喜欢在 NuGet 操作(例如更新现有包)完成后锁定 .csproj 文件。至少在我的机器上。特别是当我从具有较新版本的分支切换到具有(当时)不同版本的分支时

标签: git moodle invalid-argument


【解决方案1】:

我也因为这个错误而浪费了几个小时。

就我而言,我收到此错误是因为某些文件已被另一个程序锁定。我必须关闭所有东西,然后才能再次拉动。

希望这对某人有所帮助:)

【讨论】:

  • 谢谢!那是我的原因 - 一些文件被多个“JDK 平台二进制”实例使用并且无法更新。我的解决方案是在分支结帐之前手动关闭它们
  • 在我的情况下,是 eclipse 锁定了文件。这个答案通常是正确的解决方案
  • 我在试图更新的 CSV 文件上打开了 Excel ......吸取了教训!
  • 另外,如果您的文件位于网络驱动器上,锁定程序可能位于另一台 PC 上。
  • 我关闭了 Tomcat 服务器,然后我退出了 Eclipse,它工作了。谢谢。
【解决方案2】:

错误消息显示 git 无法取消链接的文件名。在 Windows 中,您可以转到 Start Menu > Resource Monitor > CPU tab > Associated Handles 并搜索文件名(不是完整路径),然后您将获得进程锁定该文件的结果。就我而言,它是explorer.exe。所以我终止了那个进程,git 又按预期工作了。

我猜你可以通过查找锁定文件的进程来使用其他操作系统来做同样的事情。

【讨论】:

  • 这对我有用。我永远无法自己解决这个问题。
  • 这是无价之宝。
【解决方案3】:

在使用Tortoisegit时尝试关闭任何其他工具

【讨论】:

    【解决方案4】:

    问题与文件权限有关。在 Windows 7 上使用外部驱动器后会出现,然后在 Windows 10 上再次出现。尤其是在打开应用程序的情况下将第一台计算机(即首先使用的计算机)置于休眠模式是有风险的 - 在另一台计算机上使用这些文件但使用相同的应用程序后重新连接驱动器后,许多打开的文件可能会损坏。
    可以用 CHKDSK /f 修复,但很可能会删除乱七八糟的文件。

    【讨论】:

      【解决方案5】:

      我在尝试从 gitlab 中提取时也遇到了取消链接问题。

      根据 ivan866 和 Nicolas Leucci 的回答,我只需在 管理模式 下打开我的 SourceTree 即可解决我的问题。我想 SourceTree 没有足够的权限来正确处理权限。总之值得一试!

      【讨论】:

        【解决方案6】:

        我重新启动了将“有问题”文件拉入其中的电脑,同时我关闭了另一台电脑上的 IDE,该电脑正在使用该文件并从中推送该文件。成功了

        【讨论】:

          【解决方案7】:

          我在 InteliJ 中运行一个程序,停止它会释放文件。后来就成功了

          【讨论】:

          • 这对我也适用于 android studio。这意味着如果某些其他应用程序正在锁定文件,则可能会发生错误。因此,尝试关闭此类应用程序是个好主意。
          【解决方案8】:

          如果由于文件被锁定而在 IDE 中打开了解决方案,则会出现此问题。尝试关闭解决方案,然后重新尝试操作。

          【讨论】:

            【解决方案9】:

            我在合并分支时遇到了这个问题。以管理员权限打开 Powershell 并在那里执行合并有帮助。

            【讨论】:

              【解决方案10】:

              在我的情况下,尽管重新启动我的计算机并关闭了我正在运行的任何 IDE,但我仍然遇到了问题,并且尝试在 sudo 模式下运行 git pull 返回了一个不同的错误。解决方案是你使用(在本地,所以这不是安全问题)sudo chmod 777 path/to/folder/of/filesudo chmod 777 path/to/folder/of/file/specificFile.ext

              【讨论】:

                【解决方案11】:

                对我来说,我得到了:

                “错误:无法取消链接旧的“库/ArtifactDB”:无效参数 错误:无法取消链接旧的“库/SourceAssetDB”:无效的参数 致命:无法将索引文件重置为修订版“HEAD”。”

                我一关闭 Unity,Git 就可以正常工作了。我认为 Unity 权限一定让它变得有趣。

                【讨论】:

                  猜你喜欢
                  • 2014-11-23
                  • 2022-01-02
                  • 2014-05-28
                  • 2014-01-31
                  • 2015-05-27
                  • 2014-03-16
                  • 2011-07-10
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多