Skip to content
An experimental alternative to the git-submodule command. Merges and splits subtrees from your project into subprojects and back.
Pull request Compare This branch is 59 commits ahead, 2 commits behind apenwarr:master.


git-subtree allows subprojects to be included within a sub-directory of a main project, optionally including the sub-project's entire history.


Choose one of the following ways to install git-subtree:

  1. Copy the file to where all other git scripts are stored (git --exec-path will tell you this).
  2. Run in a Git-enabled shell (that's "Git Bash" on Windows).
  3. Run make install in a Cygwin-enabled shell.

Any one of these actions makes the git subtree command available (note: space instead of dash).

To additionally install the man page:

make doc
cp git-subtree.1 /usr/share/man/man1/


See git-subtree.txt for details.

Known issues

See todo.


You may use this software under the terms of the GNU General Public License (GPL), Version 2.



Originally authored by Avery Pennarun,

Please do not contact the author using github mail. Instead,

Something went wrong with that request. Please try again.