首页 > 解决方案 > 是否可以在 WSL 上运行 git submodule update --init?

问题描述

我在 Windows 10 机器上的 Windows 子系统上运行 Ubuntu 18.04。我刚刚从 GitHub 克隆了一个包含多个子模块的存储库。要初始化这些子模块,我通常运行以下命令:
git submodule update --init

但是,当我这样做时,我得到一个错误:
/usr/lib/git-core/git-submodule: 332: /usr/lib/git-core/git-sh-setup: uname: Input/output error

有没有其他人看到过这种行为?有谁知道如何解决这一问题?

标签: gitgithubgit-submoduleswindows-subsystem-for-linux

解决方案


首先尝试将 Git(或从源代码编译)升级到最新的 2.26.2。从 2.16(2017 年第四季度)开始
,越来越多的子模块用 C 重写(从其以前的 bash 脚本状态)

git-sh-setupbash 脚本执行case $(uname -s) in,应该uname -s可以工作(除非从 Powershell 会话执行
uname代码可以追溯到13 年前的87bddba 提交,Git v1.6.0-rc0,2007 年 11 月。


推荐阅读