当前位置: 首页>>技术教程>>正文


即使我在Ubuntu 12.10上安装了git 1.8.3.2,为什么git subtree也不起作用?

, ,

问题描述

我将与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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10048.html,未经允许,请勿转载。