GIT LFS 卡在过滤进程命令中

Flo*_*ter 5 git git-lfs

我在 Bitbucket 中有一个 GIT 存储库,它使用 GIT-LFS:

每当我尝试克隆存储库时,git-lfs.exe都会遇到以下命令行:

"C:\Program Files\Git\mingw64\bin\git-lfs.exe" filter-process
Run Code Online (Sandbox Code Playgroud)

在以下所有情况下都会发生这种情况:

  1. 当我尝试克隆存储库目录时(使用git clone https://...
  2. 当我尝试将存储库添加为子模块时(运行时git submodule update
  3. 在我中止上述任何命令并git reset --hard使用 GIT-LFS 在存储库的克隆中运行(然后缺少文件和更改)。

我在用

$ git-lfs --version
git-lfs/3.1.2 (GitHub; windows amd64; go 1.17.6)
$ git --version
git version 2.35.1.windows.2
Run Code Online (Sandbox Code Playgroud)

并且也遇到了同样的问题

$ git-lfs --version
git-lfs/2.12.1 (GitHub; windows amd64; go 1.14.10; git 85b28e06)

Run Code Online (Sandbox Code Playgroud)

我还有其他几个工作目录,其中同一个存储库是一个子模块,并且git submodule update在这些目录中运行正常(但没有任何更改,因此该命令实际上不必执行任何操作)。

更新:按照此答案中的建议启用跟踪并等待足够长的时间后,结果发现 GIT LFS 在从 LFS 下载实际文件时“卡住”,这似乎非常慢(尽管文件的总大小是仅约 1 GB。文件日期显示总下载时间超过 1.5 小时!)。它最终完成,所有文件都在它们应该在的地方。这可能是与 Bitbucket 相关的问题。关于可能导致此问题的任何建议(除了联系 Atlassian 支持人员之外)?

(任何有关如何调试此问题的建议也是有效的答案)

bk2*_*204 5

调试此问题的方法是在执行 Git 操作时在环境中设置GIT_TRACE=1GIT_TRANSFER_TRACE=1、 和。GIT_CURL_VERBOSE=1(如果您使用的是 Git Bash,则只需将这些内容(以空格分隔)添加到git clone命令中即可。)

这将使您看到 Git LFS 是否真正启动并取得进展。如果是这样,您将能够看到正在提出的请求以及这些请求是否存在问题。

如果不是,那么事情就更棘手了。我们已经看到一些情况,使用非默认防病毒软件的人可能会看到损坏,因为 Git LFS 是用 Go 编写的,而 Go 二进制文件往往具有非常规的结构。Windows 上的端点监控软件可能可以做同样的事情。无论哪种情况,您都应该删除受影响的软件,重新启动,然后仅使用默认的防病毒软件。