Allright gcjr, since I dont know how familiar you are with Git, I will give you a small crash course
Don't get mad at me when I explain stuff you already know.
What is Git?
Git is a version control software. People used to use SVN earlier, now is Git one of the most convenient way to manage your software. Therefore Git can be used for solo projects. Allthough Git has some very nice stuff for working in Groups.
How to work with Git?
Git makes it possible to copy the code and manipulate on it without changing the source material. This is called a branch. When you create a branch, a certain Code state will be copied and you can do your changes without interrupting anyone elses work. Almost every well-structured Project has at these two branches: master & development.
When you want to add a new feature to your project, or fix a bug, you create a branch from development - let's call it feaute/newShinyStuff. You make your changes on this new branch feaute/newShinyStuff. When you think, your work is done, your tests are written and your stuff is documented, you create a merge request towards development.
Now the other contributers check your code, sometimes download and build locally, give feedback and open discussion. Very important thing here is, everybody can create a merge request but only contributers can code review. (It is possible for you to fork my project, change my code to fix a bug and then create a merge request into my code)
If the merge request is accepted by contributers, before you deploy / release, you run all the tests (unit, integration, e2e, manual)on development branch and if, only if, the status is stable, you create a merge request towards master. This usually gets accepted pretty fast, when builds are green.
When you are working alone though, you don't need branches, since you can always move your Git HEAD back to a certain commit. A commit is a saved (and usually uploaded) state of your code.
Merge Requests in Detail:
A Merge Request can only occur from a branch to another, ultimately the code reaching to master. When you create a merge request, Git creates a very nice diff between old files and new files. This is sometimes buggy with auto formatting code but still very handy. A diff looks like this:
If you have something to say about a certain piece of code, you can select a line and write a comment. Developer pushed the code gets notificated by an email and the code can be improved.
Initial Code Review:
As already mentioned, a merge request can only be created from one branch to another. Therefore an initial merge request requires an empty master (with a dummy file, since there can't be any empty git repositories) and a branch with your full version 1.0 code. This is not the way to go tbh. In Multi-developer projects, you should start code reviewing as soon as possible. Since this is a one man private project, I pushed into master with comprehensible commit messages and all was fine.
Allthough the above idea with new repository and a branch with full code is not bad, there is only one problem: I have to add everyone who are ready to review my code as contributor. Sadly, a contributor has full access to the repository and can also alter the code, commit history and fully delete it without history, leaving me without a backup... Yeah, there is that.
What can you do as non-contributor:
Github allows to create issues for every repository. These are official problems people found with your code, or problems they had with your library etc. You can check out the code and write an issue
I hope, I could answer your question gcjr.