错误:Ubuntu 18.04.4 LTS 和 git 2.18.1 上的“git:'submodule' 不是 git 命令”

错误:Ubuntu 18.04.4 LTS 和 git 2.18.1 上的“git:'submodule' 不是 git 命令”

我正在尝试使用git submodulegit,但在运行时

$ git submodule update --init --recursive

我明白了

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

除了这个问题我在网上找不到其他解决方案错误:“git:'submodule' 不是 git 命令”在 Intel Edison 和 git 2.0.1 上对我来说,这不起作用。

之前,我通过该apt-get方法安装了 git。我遇到了这个问题。现在,我已经按照上述方法从源代码构建了 Git这里但我跳过了这一部分

为了能够添加各种格式(doc、html、info)的文档,需要这些额外的依赖项:

$ sudo dnf install asciidoc xmlto docbook2X

$ sudo apt-get install asciidoc xmlto docbook2x

因为我不需要它。我该如何克服它?

答案1

运行sudo apt update,然后从 Ubuntu 的存储库sudo apt install git进行安装git。此版本git有一个可用的submodule命令。我建议以git这种方式安装,除非您有特殊原因不这样做。

尽管您应该能够以可行git的方式从源代码构建git submodule,但对于大多数人来说,在 Ubuntu 上安装的最佳方法git是安装 Ubuntu 软件包。该软件包简称为git。它支持submodule命令。

另外,请尝试找出哪个git客户端可能会给您带来麻烦。运行type git以找到它。然后删除此版本并重新安装git

要安装该git包,请运行:

sudo apt update
sudo apt install git

git submodulegit对我来说,它可以在通过这种方式安装的18.04 LTS 系统上使用。

(还有一个git-all包,用于安装附加工具和服务。这些指令建议这样做,但我认为大多数用户不需要软件包git提供的任何内容。安装它不会有什么坏处,但如果你只是安装,git你仍然可以git-all稍后再安装。我刚刚测试的 18.04 LTS 系统git submodule没有git-all安装该软件包或其大部分依赖项。)


当新安装的程序版本应该提供新行为但意外地表现与以前相同时,通常原因是您以前安装的程序仍在运行,而不是新软件。该type命令可以帮助诊断这种情况。根据对问题的进一步调查,这很可能就是正在发生的事情。

当你跑步的时候type -a git它揭示您安装了多个git,但实际运行的版本 ( /home/.../linux-devkit/sysroots/x86_64-arago-linux/usr/bin/git) 不同两个都通过 Ubuntu 的包管理器安装的您最近从源代码安装的那个。

如果你不需要那个,最好卸载它。如果你确实需要它,或者由于某种原因无法删除它——同时,在你删除它之前——你可以通过确保包含正常工作的可执行文件的目录git出现在$PATH 那个。

如果可以/usr/bin接受$PATH /home/.../linux-devkit/sysroots/x86_64-arago-linux/usr/bin,这样就可以解决问题。

但这可能不可接受。也许您依赖于在其他 bin 目录中首先找到的其他可执行文件。在这种情况下,您可以将符号链接放在比该/usr/bin/git目录更早的其他目录中。$PATH

git我建议采用这种方法,而不是通过重命名或删除特定文件(例如)来进一步破坏安装/home/.../linux-devkit/sysroots/x86_64-arago-linux/usr/bin/git。原因是git有多个可执行文件,因为一些git命令是主git可执行文件的外部提供的。重命名(或删除)一些命令而不重命名其他命令可能会导致您运行的一个版本git使用另一个版本的部分内容git。这在大多数情况下可能都可以正常工作,但如果出现问题,排除故障将很复杂。

相关内容