Почему `git поддерево не работает, хотя у меня есть git 1.8.3.2, установленный на Ubuntu 12.10?

Я собираюсь развернуть мой статический сайт на основе AngularJS в качестве страницы Github с Yeoman. Шаг 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 все еще не работает, хотя я обновился до текущей стабильной версии?

Ответ 2

На самом деле он установлен на 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.