There are a bunch of files in my project that are sometimes modified but always shared among many different branches. Examples include build scripts, batch files that include p
Instead of relying on submodules, have you considered git-subtree?
As stated in the documentation:
Subtrees are not to be confused with submodules, which are meant for the same task.
Unlike submodules, subtrees do not need any special constructions (like .gitmodule files or gitlinks) be present in your repository, and do not force end-users of your repository to do anything special or to understand how subtrees work.
A subtree is just a subdirectory that can be committed to, branched, and merged along with your project in any way you want.
Below are some posts giving some feedback and explaining the pros of subtrees over submodules:
A very interesting (and somewhat heated) thread, from the git mailing-list, discussing pros and cons of git-subtree and submodule