Git clone git-lfs filter-process: git-lfs: 找不到命令



我正在尝试通过以下方式从 git 克隆一个项目:

git clone link

并收到此消息

remote: Enumerating objects: 24533, done.
remote: Counting objects: 100% (24533/24533), done.
remote: Compressing objects: 100% (5045/5045), done.
remote: Total 24533 (delta 15448), reused 24389 (delta 15306), pack-reused 0
Receiving objects: 100% (24533/24533), 75.12 MiB | 10.96 MiB/s, done.
Resolving deltas: 100% (15448/15448), done.
git-lfs filter-process: git-lfs: command not found
fatal: the remote end hung up unexpectedly
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

我一直在四处寻找并尝试:

git config --system core.longpaths true

但它不起作用,我的磁盘有很多空闲

如果您使用的是 Mac,请运行:

brew install git-lfs
git lfs install
git lfs install --system

TL;博士

也许git没有链接到机器上的git-lfs。尝试链接它:

ln -s "$(which git-lfs)" "$(git --exec-path)/git-lfs"

解释

虽然它说缺少一些东西,但实际上可以安装在机器上git-lfsgit只是没有在搜索路径中找到它。因此,我们在其搜索路径中创建一个符号文件:

$(git --exec-path)/git-lfs

链接到计算机上通常安装的:

which git-lfs

您可以尝试推送包含巨大文件的存储库。因此,在这种情况下,我们必须安装git-lfs

对于视窗:

  • 从官方网站下载 git-lfs (下载)并将其安装在您的机器中。

  • 然后,通过在终端中运行以下命令,为您的用户帐户设置 Git LFS:

    git lfs install
    

对于 Mac:

  • 在终端中运行以下命令。

    brew install git-lfs
    git lfs install
    

对于 Ubuntu:

  • 在终端中运行以下命令。

    sudo apt install git-lfs
    git lfs install
    

遇到同样的问题,Teodoriko 的答案对我不起作用,结果是:

git: 'lfs' is not a git command. See 'git --help'.

对我有用的是使用以下方法安装依赖项:

sudo apt install git-lfs

我的 git 版本2.27.0

如果您有意删除了 git-lfs,并且不想像其他答案建议的那样重新安装它,那么您的出路是:

git config --global --remove-section filter.lfs

这是一个简单的问题。查看基于您的操作系统的安装类型的文档。对于 linux,只需执行以下命令:

  1. 下载并安装 Git 命令行扩展。下载后 并安装,通过运行以下命令为您的用户帐户设置 Git LFS:

    git lfs install
    

每个用户帐户只需运行一次。

  1. 在要使用 Git LFS 的每个 Git 存储库中,选择 您希望 Git LFS 管理的文件类型(或直接编辑您的 .gitattributes)。您可以在以下位置配置其他文件扩展名 随时。

    git lfs track "*.psd"
    

现在确保跟踪 .gitattributes:

git add .gitattributes

请注意,定义 Git LFS 应跟踪的文件类型本身不会将任何预先存在的文件转换为 Git LFS,例如其他分支上的文件或您之前的提交历史记录中的文件。为此,请使用 git lfs migrate[1] 命令,该命令具有一系列旨在适应各种潜在用例的选项。

  1. 没有第三步。只需提交并推送到 GitHub 通常会;例如,如果您当前的分支名为 main:

    git add file.psd
    git commit -m "Add design file"
    git push origin main
    

参考资料: https://git-lfs.github.com/

我在Mac OS上偶然发现了同样的错误。原因是 Xcode 命令行工具中包含的 Git 版本与通过 HomeBrew 安装的 Git LFS 版本之间存在冲突。

基本上,正如投票最高的答案所暗示的那样,Git 二进制可执行文件 (git) 期望 Git LFS 扩展的二进制可执行文件位于其执行路径的目录中

即使 Xcode 命令行工具安装的 Git 二进制可执行文件在物理上位于/usr/bin/git

~ which git
/usr/bin/git

其执行路径是另一个目录

~ git --exec-path
/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core

因此git无法在/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core内部找到git-lfs二进制,因为后者位于/opt/opt/homebrew/bin/git-lfs

~ which git-lfs
/opt/homebrew/bin/git-lfs

这解释了顶部答案中提出的符号链接的必要性:

sudo ln -s "$(which git-lfs)" "$(git --exec-path)/git-lfs"

不幸的是,在最新版本的Mac OS中,该命令不起作用:

~ sudo ln -s "$(which git-lfs)" "$(git --exec-path)/git-lfs"
ln: /Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-lfs: Operation not permitted

该错误是由于系统完整性保护(又名"SIP")造成的,该功能在最新版本的Mac OS中启用。它基本上使文件系统的某些部分对所有人只读,包括root:即使是前缀sudo,如上所示,也是无效的。

说,唯一对我有用的解决方案是通过brew安装Git

~ brew install git

确保 HomeBrew 二进制文件优先于系统二进制文件:

~ echo $PATH
opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/Library/Apple/usr/bin

我的问题是由 intelliJ IDEA 项目组中的项目太多引起的。 所以 git-lfs 在索引我认为的所有项目时崩溃了。我能够通过重新组合我的项目(将它们分成更多组)来修复它。希望它对某人有所帮助

for RHEL/CentOS/RockyLinux/OracleLinux 9

dnf install git-lfs

对我来说,在Mac M1上,以下命令已经奏效sudo cp -n $(which git-lfs) /usr/local/bin/

相关内容

  • 没有找到相关文章

最新更新