为什么即使我在Ubuntu 12.10上安装了git 1.8.3.2,`git subtree`也无法正常工作?

时间:2013-07-22 20:59:50

标签: git ubuntu git-subtree

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

git subtree push --prefix dist origin gh-pages

但是当我进入时,我得到了

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

这个SO answer provided me instructions关于如何升级到最新的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命令仍然无法正常工作?

3 个答案:

答案 0 :(得分:46)

它实际上是安装在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

UPDATE 1:看起来像patch has been submitted上游来修复此问题,但尚未合并。

更新2:在Debian中修复此修补程序的修补程序已合并,但由于它们是单独的git-subtree程序包的路径,我认为这不会使它成为Ubuntu 12.04。由于/usr/lib/git-core/git-subtree包已正确创建git,因此14.04似乎不是问题。

答案 1 :(得分:22)

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

答案 2 :(得分:0)

在Fedora上,它是作为单独的软件包提供的:

dnf install git-subtree