45

I am about to deploy my AngularJS based static site as a Github Page with Yeoman. Step 3 of the deployment instructions tell me to do

git subtree push --prefix dist origin gh-pages

but when I enter that I get

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

This SO answer provided me instructions on how to upgrade to the latest git-core and ensure it always get upgraded to the latest stable release.

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

After running those commands I did git --version to make sure I had the latest version and apparently I did since git version 1.8.3.2 was the output. Now when I tried running

git subtree push --prefix dist origin gh-pages

again I still got the same following error

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

Finally I just restarted Ubuntu 12.10 and tried to run the command again but once again, I got the same error.

How come the git subtree command is still not working even though I have upgraded to the current stable release?

Community
  • 1
  • 1
  • 1
    It doesn't seem to be installed by the default package. This site has some directions: http://engineeredweb.com/blog/how-to-install-git-subtree/ – TeTeT Jul 22 '13 at 21:17
  • Ahh right thanks. That did it. Feel free to answer it and I will mark it correct if you'd like. –  Jul 22 '13 at 21:20

3 Answers3

47

It actually is installed on Ubuntu but for some reason it's not put anyplace where git can find it. Easiest way is to create a symlink:

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: looks like a patch has been submitted upstream to fix this but it hasn't yet been merged.

UPDATE 2: the patch to fix this in Debian has been merged, but since they went the route of a separate git-subtree package I don't think this will make it to Ubuntu 12.04. Seems to not be an issue in 14.04 as /usr/lib/git-core/git-subtree is already created correctly by the git package.

Tobias J
  • 19,813
  • 8
  • 81
  • 66
  • 2
    Even after updating to latest from git-core/ppa, subtree is not found. This solution is the real fix for me (Linux Mint 14) – powlo Dec 02 '13 at 14:28
25

It doesn't seem to be installed by the default package. This site has some directions: http://engineeredweb.com/blog/how-to-install-git-subtree

TeTeT
  • 2,044
  • 20
  • 30
  • 6
    On Ubuntu it was already installed, but I had to add a simlink: http://cogumbreiro.blogspot.com/2013/05/how-to-install-git-subtree-in-ubuntu.html – thebenedict Oct 10 '13 at 11:16
  • @thebenedict Interesting! BTW building the manpage requires a huge toolchain. I found a patch which adds a pre-built manpage, `git-subtree.1`: http://code.google.com/p/git-core/issues/detail?id=18 – 13ren Nov 16 '13 at 16:27
16

On Fedora, it is available as a separate package:

dnf install git-subtree

Alex F
  • 826
  • 8
  • 18