I answered based on what I understood from your question, comment if you need something.
Let's say you create a new directory, which will later become a submodule. If you do not want to track changes in this directory, add this to .gitignore of you super_repo. Now let me say that you decided to make it a submodule, do it from you super_repo.
1) Remove the directory from .gitignore
2) Initialize your my_dir_3
git init
3) Add a submodule to your super repo
git subodule add module_name
Your submodule is added to the super repo. Things you need to know to work with submodules (at least in your case):
1) Your super_repo should also be a git repository.
2) Submodules are processed as different objects in git, that is, changes from the module will not be reflected in another. For example, the commit in my_sub_1 will not appear in my_sub_2.
3) git will start tracking my_sub_3 as a separate project as soon as it is added as a submodule.
4) "git status" after you added the submodule, you should show you .gitmodules, you will notice all the submodules inside .gitmodules.
5) Here is the interesting part about the git submodule. Suppose you made some changes to my_sub_3, git sees the submodule in it and does not track its contents when you are not in this directory.
So, if you are outside the directory, changes will not be tracked. If you commit at this point, it will be considered as part of super_repo, not my_sub_3
Finally,
Submodules should not be confused with remotes, which are other repositories of the same project; submodules are designed for different projects that you would like to make part of your source tree, while the history of the two projects still remains completely independent, and you cannot modify the contents of the submodule from the main project.
You can add a remote for another project and use the subtree merge strategy , instead of considering the other project as a submodule