I am not as technically skilled as most people asking here. I use git to backup my own work to an online repository, but I rarely use it in collaboration, and don't know much more than the basic functions.
I have some code (think more like a gaggle of scripts, really) that I use to do some data processing. Frequently, other people (also somewhat technically skilled) want to see some of it. Unfortunately, the dependencies for running it include ROOT with Python 3 hooks (it installs by default with Python 2 hooks, and nobody is going to reinstall ROOT to run my code), and a number of other sizable libraries. My project is python 3 and so it probably won't be able to use most peoples ROOT installation.
In order to make things more accessible, I have a subset of modules that avoid any of more esoteric dependencies in another folder. However, I suspect there is a better way to maintain a low-dependency version than copy-pasting code.
I read this question: How to maintain different, customized versions of the same software for multiple clients and it looks like it might be the right direction. However, it said that the branches should contain minimal changes. I need a version of the project that contains only 1/3 of the files, with some minor changes in some files (removing imports). That seems significantly different to me. Is branches in a repository still the right way to handle this?