git clone git-lfs filter-process: git-lfs: command not found

bao*_* le 5 git-lfs

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

git clone link
Run Code Online (Sandbox Code Playgroud)

并收到了这条消息

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 :/'
Run Code Online (Sandbox Code Playgroud)

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

git config --system core.longpaths true
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我的磁盘有很多免费的

Luk*_*ski 133

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

brew install git-lfs
git lfs install
git lfs install --system
Run Code Online (Sandbox Code Playgroud)


Tin*_*hih 34

长话短说

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

ln -s "$(which git-lfs)" "$(git --exec-path)/git-lfs"
Run Code Online (Sandbox Code Playgroud)

解释

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

$(git --exec-path)/git-lfs
Run Code Online (Sandbox Code Playgroud)

链接到机器上通常安装的链接:

which git-lfs
Run Code Online (Sandbox Code Playgroud)


Cod*_*ker 24

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

对于 Windows:

对于苹果机:

对于Ubuntu:


rni*_*son 6

如果您故意删除了 git-lfs,并且不想像其他答案所建议的那样将其安装回来,那么您的出路是:

git config --global --remove-section filter.lfs
Run Code Online (Sandbox Code Playgroud)


wan*_*les 6

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

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

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

~ which git
/usr/bin/git
Run Code Online (Sandbox Code Playgroud)

它的执行路径是另一个目录

~ git --exec-path
/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core
Run Code Online (Sandbox Code Playgroud)

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

~ which git-lfs
/opt/homebrew/bin/git-lfs
Run Code Online (Sandbox Code Playgroud)

这解释了最佳答案中提出的符号链接的需要:

sudo ln -s "$(which git-lfs)" "$(git --exec-path)/git-lfs"
Run Code Online (Sandbox Code Playgroud)

不幸的是,在最新版本的 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
Run Code Online (Sandbox Code Playgroud)

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

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

~ brew install git
Run Code Online (Sandbox Code Playgroud)

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

~ echo $PATH
opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/Library/Apple/usr/bin
Run Code Online (Sandbox Code Playgroud)


Jam*_*ube 5

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

git: 'lfs' is not a git command. See 'git --help'.
Run Code Online (Sandbox Code Playgroud)

对我有用的是安装依赖项:

sudo apt install git-lfs
Run Code Online (Sandbox Code Playgroud)

我的git版本2.27.0


小智 3

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

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

    git lfs install
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    git lfs track "*.psd"
    
    Run Code Online (Sandbox Code Playgroud)

现在确保 .gitattributes 被跟踪:

  git add .gitattributes
Run Code Online (Sandbox Code Playgroud)

请注意,定义 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
    
    Run Code Online (Sandbox Code Playgroud)

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