On Tue, Feb 07, 2017 at 08:59:06AM -0600, Samuel Lijin wrote: > Have you tried using (without -s subtree) -X subtree=path/to/add/subtree/at? > > From the man page: > > subtree[=<path>] > This option is a more advanced form of subtree > strategy, where the strategy > makes a guess on how two trees must be shifted to match > with each other when > merging. Instead, the specified path is prefixed (or > stripped from the > beginning) to make the shape of two trees to match. I'm not 100% certain, but it's highly likely that the subtree=<prefix> argument needs to include a trailing slash "/" in the prefix, otherwise files will be named e.g. "fooREADME" instead of "foo/README" when prefix=foo. These days I would steer users towards the "git-subtree" command in contrib/ so that users don't need to deal with these details. It handles all of this stuff for you. https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt https://github.com/git/git/tree/master/contrib/subtree Updating the progit book to also mention git-subtree, in addition to the low-level methods, would probably be a good user-centric change. -- David