问题描述
我将与Yeoman一起将基于AngularJS的静态站点部署为Github Page。部署说明的第3步告诉我要做
git subtree push --prefix dist origin gh-pages
但是当我输入时,我得到
git: 'subtree' is not a git command. See 'git --help'.
有关如何升级到最新的git-core并确保始终将其升级到最新的稳定版本的SO answer provided me instructions。
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
命令为何仍然不起作用?
最佳办法
默认软件包似乎未安装它。该站点有一些指示:http://engineeredweb.com/blog/how-to-install-git-subtree
次佳办法
它实际上安装在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:看起来像patch has been submitted上游可解决此问题,但尚未合并。
更新2:在Debian中修复此问题的补丁已合并,但是由于它们采用了单独的git-subtree
软件包,我认为这不会使其适用于Ubuntu 12.04。在14.04中似乎不是问题,因为git
软件包已正确创建了/usr/lib/git-core/git-subtree
。
第三种办法
在Fedora上,它是作为单独的软件包提供的:
dnf install git-subtree