The best solution that worked for me in this case was to do as follows:
- Fork, or otherwise create a repository for the changes / additions
- Use
git submodule
to add the new repository to my project as a subfolder - Make changes within the submodule, or make changes to the created repository then update the submodule.
If you are as not as particular as I am about how you want the changes tracked, ton's solution using Subtree works fine; the biggest difference is that all of the commits from the repository will be included in the repository's history.