I am developing a project where I have a lot of functions and complex tasks rannanble from a single notebook. I would like to use a version control like git, but using it with a single notebook is not ideal, as the notebook increases the size of the project, having a lot of lines changing even without having edited something, plus it's a single file. I tried to save it as .m and then running Import[file.m] or something like that from another notebook, but the m file won't get run when loaded. If I set it as "initialization group" before saving it to .m, then it load succesfully. I wanted to ask if there are other ways to obtain what I want. Note that, I tried several times in the past to convert my notebooks in what are called mathematica packages, but this never seems to work, I think it's because of the context of the variables. My tasks usually get messed up when the notebook is converted into a package. I would prefer just something simper that lets me load the .m file and that's it.