我正在尝试使用git submodule
git,但在运行时
$ 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 submodule
git
对我来说,它可以在通过这种方式安装的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
。这在大多数情况下可能都可以正常工作,但如果出现问题,排除故障将很复杂。