44

我即将使用 Yeoman 将基于 AngularJS 的静态站点部署为 Github 页面。部署说明的第 3 步告诉我要做

git subtree push --prefix dist origin gh-pages

但是当我进入时,我得到

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

这个SO 答案为我提供了有关如何升级到最新 git-core 并确保它始终升级到最新稳定版本的说明。

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

运行这些命令后,我git --version确保我拥有最新版本,显然我这样做了,因为git version 1.8.3.2是输出。现在当我尝试跑步时

git subtree push --prefix dist origin gh-pages

再次我仍然得到相同的以下错误

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

最后,我刚刚重新启动了 Ubuntu 12.10 并尝试再次运行该命令,但再次出现同样的错误。

git subtree即使我已经升级到当前的稳定版本,为什么命令仍然不起作用?

4

3 回答 3

47

它实际上安装在 Ubuntu 上,但由于某种原因,它没有放在 git 可以找到它的任何地方。最简单的方法是创建一个符号链接:

sudo chmod +x /usr/share/doc/git/contrib/subtree/git-subtree.sh
sudo ln -s /usr/share/doc/git/contrib/subtree/git-subtree.sh /usr/lib/git-core/git-subtree

更新 1:看起来已经向上游提交了一个补丁来解决这个问题,但它还没有被合并。

更新 2:在 Debian 中修复此问题的补丁已合并,但由于他们采用了单独git-subtree软件包的路线,我认为这不会使其适用于 Ubuntu 12.04。在 14.04 中似乎不是问题,因为包/usr/lib/git-core/git-subtree已经正确创建了git

于 2013-11-21T21:33:53.063 回答
24

默认包似乎没有安装它。这个网站有一些方向:http ://engineeredweb.com/blog/how-to-install-git-subtree

于 2013-07-22T21:28:36.357 回答
10

在 Fedora 上,它作为一个单独的包提供:

dnf install git-subtree

于 2019-10-23T09:21:50.120 回答